我需要將來自日誌和journal_entries的字段放入表中的一行,並且能夠在同一視圖中添加和顯示多個數據輸入行。 (即一個行表,並使用帶有accept_nested_attributes的link_to_add_fields擴展表中的行)。rails如何做f.parent.text_field:name
必須有某種f.parent.text_field或f.object.parent.text_field?
我想
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像做以下
<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>
我的模型和紅寶石1.9.3
我試圖看看這是否是比問題面臨的更好的解決方案:rails link_to_add_fields not adding fields with has_many :through (with nested form inside)
我做了一個不同的線程,因爲我認爲它是如此巨大的不同。
感謝, 菲爾
你能詳細闡述一下你想達到的目標嗎?爲什麼要添加'<%= f.fields_for:journal_entries do | g | '_journal_entry_fields.html.erb'中的'%>'? – 2013-03-13 19:02:12
'dated'字段的用途是什麼?你爲什麼試圖從關聯表中分配它?如果兩個不同的'journal_entries'對於他們父母的''''''有兩個不同的值會發生什麼?這對我來說沒什麼意義...... – HargrimmTheBleak 2013-03-13 19:11:45
修正了這個問題,它並不意味着在那裏:)好抓Manoj。我試圖讓它將來自journal模型和journal_entry模型的輸入放在同一個空間中。我知道,如果在有多個孩子的情況下嘗試更改父母,可能會導致父母感到困惑,但如果父母有多個孩子時禁用該父母,則可以避免這種情況(允許它僅編輯第一個孩子或最後一個孩子的父母...這就是說,是否有可能做某種類型的f.parent.text_field:屬性? – nevieandphil 2013-03-13 19:12:52