我想知道是否有人可以快速瀏覽一下。我正在製作一個簡單的轉換應用程序,可以在測量單位之間轉換我需要能夠使用存儲每個表之間關係的連接表來自引用表,以及每個表之間的轉換。這將在關係的任何一方之間被引用。例如1cm = 10mm和10mm = 1cm。ROR自引用has_many通過accept_nested_attributes_for
所以到目前爲止我有這樣的:
#migrations
create_table :measures do |t|
t.string :name
end
create_table :measure_measures do |t|
t.integer :measure_id
t.integer :related_measure_id
t.integer :conversion
end
class Measure < ActiveRecord::Base
has_many :related_measures,
:foreign_key => 'measure_id',
:class_name => 'MeasureMeasure',
:dependent => :destroy
has_many :measures, :through => :related_measures
accepts_nested_attributes_for :related_measures,
:reject_if => proc { |attrs| attrs['related_measure_id'].blank? ||
attrs['quantity'].blank? },
:allow_destroy => true
end
#controller
@measure = Measure.find params[:id
#form
<% form_for @measure do |f| %>
<% fields_for :related_measures do |f_r_m| %>
<%= f_r_m.text_field :related_measure_id -%>
<%= f_r_m.text_field :quantity -%>
<% end %>
<% end %>
對於這個工程確定的大部分。除了我不能訪問相關度量的名稱,只有所有者。
我需要得到它在某種程度上是這樣的:
f_r_m.object.related_measure.name
但很顯然,儘管我盡了最大努力,我不能設置它,並收到錯誤。
undefined method `owner_measure' for #<MeasureMeasure:0x1053139a8>
幫助將非常感激。 :)
你會得到錯誤嗎?如果是這樣,你可以將它們添加到你的問題嗎? – marcgg 2009-11-18 12:11:46
感謝您的回覆。在最後添加了錯誤消息。 – mark 2009-11-18 13:27:29