2013-06-12 62 views
0

有一些問題爲我的工人活動記錄設置表單。我有一個用戶has_many工人關係,併爲工人建立了嵌套路線。我的表單代碼位於視圖的workers目錄下的new.html.erb文件中。沒有方法錯誤form_for()

<h1>Setup a Worker</h1> 
    <p> 
    Enter in the information below to connect your worker to our service. 
    </p> 
    <div class="row"> 
    <div class="span6 offset3"> 
    <%= form_for(@worker) do |w| %> 

     <%= w.label :name %> 
     <%= w.text_field :name %> 

     <%=w.label :ip_address, "Ip address of the worker" %> 
     <%=w.text_field :ip_address %> 

     <%= w.submit "Create Worker", class: "btn btn-medium btn-primary" %> 
    <% end %> 
    </div> 
</div> 

在我的工人控制器我有這個

class WorkersController < ApplicationController 

    def new 
    @worker = Worker.new 
    end 

    def show 
    end 

end 

但是,當我嘗試加載頁面我得到這個錯誤

NoMethodError in Workers#new 

,並指向此行

<%= form_for(@worker) do |w| %> 

感謝您的幫助。

回答

1
<%= form_for[@user, @worker] do |w| %> 

    <%= w.label :name %> 
    <%= w.text_field :name %> 

    <%=w.label :ip_address, "Ip address of the worker" %> 
    <%=w.text_field :ip_address %> 

    <%= w.submit "Create Worker", class: "btn btn-medium btn-primary" %> 
<% end %> 

    def new 
    @worker = Worker.new 
    @user = User.find(params[:id]) or some other way to load the user 
    end 
+0

爲什麼我必須傳遞給用戶一個表單的工作者?是因爲嵌套路由嗎? –

+0

是的,它是你的路線和嵌套資源需要 – rmagnum2002

+0

現在得到這個錯誤,現在爲form_for行添加用戶後 錯誤的參數數量(1爲0) –

0

爲rmagnum說,你需要嵌套的表格也,故導軌可以建立的關係是否建立,當IM與形式的工作我喜歡用的寶石叫simple_form,在這裏你可以檢查此railscasts:http://railscasts.com/episodes/234-simple-form ,它確實有助於分配關係。