通过HATBM创建嵌套属性

时间:2012-05-04 10:50:20

标签: ruby-on-rails nested-forms

我想通过HATBM为我的应用程序创建一个嵌套表单

我的模特

Study => has_many:samples

Sample => has_many:expts

Expt => has_one:运行

在我的研究中 - 我有新观点

<% 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'

请一些人告诉我我在哪里犯了错误。

干杯

0 个答案:

没有答案