2011-05-09 44 views
0

我有屬於用戶Rails的協會 - 很難得到的form_for工作

class Member < ActiveRecord::Base 

    attr_accessible :name 
    belongs_to :user 

end 


class User < ActiveRecord::Base 

    attr_accessible :name 
    has_many :members, :dependent => :destroy 

end 

在我的成員控制器成員模型我有

class MembersController < ApplicationController 

    def create 
    @user = User.find(params[:user_id]) 
    @member = @user.members.build(params[:member]) 
    if @member.save 
     flash[:success] = "Member created!" 
     redirect_to root_path 
    else 
     render 'pages/home' 
    end 
    end 
end 

在/ app /視圖/用戶/節目。 html.erb我

<%= form_for @member do |f| %> 

    <div class="field"> 
    <%= f.text_area :name %> 
    </div> 
    <div class="actions"> 
    <%= f.submit "Submit" %> 
    </div> 
<% end %> 

,但我得到了以下錯誤:無 未定義的方法`MODEL_NAME」

Extracted source (around line #18): 

15: 
16: <h1 class="member">What's up?</h1> 
17: 
18: <%= form_for @member do |f| %> 

我的節目在用戶控制器動作

def show 
     @user = User.find(params[:id]) 
     @members = Member.new 
     @title = @user.name 
    end 

中也包含了「新」的方法

我試圖改變:類USER_ID到:在MembersController ID,但這也不起作用。我在這裏做錯了什麼?

在此先感謝

+0

show your SHOW action – fl00r 2011-05-09 18:50:05

+0

控制器中是否定義了'new'動作?你的表單位於'/ members/new'嗎? – 2011-05-09 18:51:14

+0

Member.new在Users控制器的show動作中定義。該表格位於app/views/users/show.html.erb謝謝 – Zakoff 2011-05-09 19:20:34

回答

0

我需要傳遞@ user.id作爲表單中的隱藏字段,以便工作關聯!

0

嘗試通過@member = Member.new更換@members = Member.new ;-)!

+0

如果我正在使用成員控制器中的構建方法,是否還需要Member.new行? @member = @ user.members.build(params [:member]) – Zakoff 2011-05-09 20:38:11

+0

如果您想在用戶類中創建成員,則必須在嵌套模型中發揮作用。 http://weblog.rubyonrails.org/2009/1/26/nested-model-forms – Hartator 2011-05-09 21:16:02