1

我想通过 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 #”

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

干杯

4

0 回答 0