我想通过 HATBM 为我的应用程序创建一个嵌套表单
我的模型是
学习 => has_many :samples
样本 => has_many :expts
Expt => has_one :run
在我的研究中——我的新观点
<% form_for @study do |f| %>
<%= f.label :study_Title %>
<%= f.text_field :study_title, :size => 20 %><br \>
<% for sample in Sample.find(:all) %>
<div>
<%= check_box_tag "study[sample_ids][]", sample.id, @study.samples.include?(sample) %>
<%= sample.name %>
</div>
<% end %>
<p><center><%= submit_tag "Next" %></center></p>
<% end %>
在研究控制器中
def create
@study = Study.new(params[:study])
if current_user.id?
# Put the current user_id in the study.user_id
@study.user_id = current_user.id
end
if @study.save
redirect_to :controller => "samples", :action => "add_sample_details", :method => "post", :id => @study.id
else
render :action => "new"
end
end
在示例控制器中的我的 add_sample_details 操作中
def add_sample_details
@study = Study.find(params[:id])
@samples = Sample.find(:all, :joins => :study, :conditions => { :studies => { :id => @study.id } })
end
我无法创建样本属性来更新其记录,也无法为特定样本创建新的 expt 记录
<% form_for @samples do |f| %>
sample fields
and then
<% f.fields_for :expts do |f_expts| %>
<% end %>
<% end %>
我收到此错误“未定义的方法 `sample_sample_path' for #”
请有人告诉我我在哪里犯了错误。
干杯