如何解决嵌套属性和另一个常量属性
| 我有以下模型:Project
和Task
。我使用嵌套属性,如下所示:
<% form_for @project,:url => consultant_report_path(@project),:html => { :method => :put} do |f| %>
<% f.fields_for :tasks do |builder| %>
<%= render \"due_dates_fields\",:f => builder %>
<% end %>
<p><%= submit_tag %></p>
<% end %>
我有任务类型。
例如,如何仅对带有type=\'economical\'
的任务编写此代码?
解决方法
嗨,您可以通过多种方式完成此任务:
过滤对象:
<% f.fields_for :tasks do |builder| %>
<% if builder.object.type == \'economical\' %>
<%= render \"due_dates_fields\",:f => builder %>
<% end %>
<% end %>
指定实例:
<% @project.tasks.each do |task| %>
<% if task.type == \'economical\' %>
<% f.fields_for :tasks,task do |builder| %>
<%= render \"due_dates_fields\",:f => builder %>
<% end %>
<% end %>
<% end %>
或指定要使用的集合:
<% f.fields_for :tasks,@economical_taks do |builder| %>
<%= render \"due_dates_fields\",:f => builder %>
<% end %>
这对您有帮助,请查看Fields_以获得更多信息。
,您可以建立自定义关系
class Project < ActiveRecord::Base
has_many :tasks
accepts_nested_attributes_for :tasks
has_many :economical_tasks,:class_name => \'Task\',:foreign_key => \'project_id\',:conditions => [\'tasks.type = ?\',\'economical\']
accepts_nested_attributes_for :economical_tasks
end
然后,您的表单构建器可以如下所示:
<% f.fields_for :economical_tasks do |builder| %>
<%= render \"due_dates_fields\",:f => builder %>
<% end %>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。