我需要将来自期刊和journal_entries的字段放在表的一行中,并且能够在同一视图中添加和显示许多数据条目行。(即使用link_to_add_fields和accepts_nested_attributes来扩展表中的行)
必须有某种f.parent。text_field还是f.t object.parent.text_field?
我正在尝试做如下的事情
<table>
#in a :pm namespace
<%= form_for [:pm, @lease] do |f| %>
<%= f.fields_for :journal_entries do |journal_entries| %>
<%= render "journal_entry_fields" , f: journal_entries %>
<% end %>
<%= link_to_add_fields "+ Add transactions", f, :journal_entries %>
<% end %>
</table>
_journal_entry_fields.html.erb
<fieldset>
<tr>
## HERE IS WHAT I'M LOOKING FOR <<<<<<<<<<<!!>>>>>>>>>>>>>
<td><%= f.parent.text_field :dated %></td>
<td><%= f.parent.text_field :account_name %></td>
<td><%= f.text_field :credit %></td>
<td><%= f.text_field :notes %></td>
</tr>
</fieldset>
我的模型class Lease < ActiveRecord::Base
has_many :journals, :order => [:dated, :id] #, :conditions => "journals.lease_id = id"
has_many :journal_entries, :through => :journals
accepts_nested_attributes_for :journal_entries , :allow_destroy => true
accepts_nested_attributes_for :journals , :allow_destroy => true
end
class Journal < ActiveRecord::Base
belongs_to :lease, :conditions => :lease_id != nil
has_many :journal_entries
accepts_nested_attributes_for :journal_entries , :allow_destroy => true
end
class JournalEntry < ActiveRecord::Base
belongs_to :journal
end
我使用的是Rails 3.2.12和ruby 1.9.3
我想看看这是不是一个更好的解决方案比所面临的问题:rails link_to_add_fields不添加字段与has_many:through(内部嵌套的形式)
我做了一个不同的线程,因为我觉得它是如此的不同。
谢谢,菲尔。
根据我对您的用例的理解,您希望以单一形式的Lease创建日志及其条目。因此,您可以为它们设置fields_for,如下所示:
<table>
#in a :pm namespace
<%= form_for [:pm, @lease] do |f| %>
<%= f.fields_for :journals do |journal| %>
<%= render "journal_entry_fields" , f: journal %>
<% end %>
<%= link_to_add_fields "+ Add transactions", f, :journals %>
<% end %>
</table>
_journal_entry_fields.html.erb
<fieldset>
<tr>
<td><%= f.text_field :dated %></td>
<td><%= f.text_field :account_name %></td>
<%= f.fields_for :journal_entries do |journal_entry| %>
<td><%= journal_entry.text_field :credit %></td>
<td><%= journal_entry.text_field :notes %></td>
<% end %>
</tr>
</fieldset>
尽管每次动态添加新记录时都需要初始化日志条目。我现在没法帮你,因为我不在电脑上。
试试:http://railscasts.com/episodes/196-nested-model-form-revised
railscast模型关系与您的模型关系类似,尽管您需要修改HTML。
RailsCasts Models: Survey > Question > Answer
Your Models: Lease > Journal > JournalEntry