2012-04-24 7 views
0

アプリケーションレールに新しいオブジェクトを作成するために、フォームを送信するとき、私は次のエラーを受信して​​います:未定義のメソッド `グループ」#のための<メンバー:0x007fadb5222e40>

NoMethodError in MembersController#create 

undefined method `group' for #<Member:0x007fadb5222e40> 

Application Trace | Framework Trace | Full Trace 
app/controllers/members_controller.rb:58:in `block in create' 
app/controllers/members_controller.rb:57:in `create' 

私のコントローラに問題のメソッドを作成します

def create 

@group = Group.find(params[:group_id]) 
@user = User.find(session[:user_id]) 

if @user and @group and @group.group_password == params[:password] 
    @member = Member.new do |m| 
    m.group_id = @group.id 
    m.user_id = @user.id 
    m.slug = @user.username 
    end 
    logger.debug("#{ @member.group_id}, #{ @member.user_id}, #{ @member.slug}") 
    respond_to do |format| 
    if @member.save 
     format.html { redirect_to @group, notice: 'Member was successfully created.' } 
     format.json { render json: @member, status: :created, location: @member } 
    else 
     format.html { render action: "new" } 
     format.json { render json: @member.errors, status: :unprocessable_entity } 
    end 
    end 
else 
    redirect_to group_join_url(@group), alert: "Invalid group password" 
end 

end 

エラーに記載されている57行は「respond_to do | format |」です。

そして、ちょうどよい測定のためには、ここに私のメンバーのモジュールです:

class Member < ActiveRecord::Base 
    extend FriendlyId 
    friendly_id :slug, :use => :scoped, :scope => :group 

    attr_accessible :group_id, :slug, :user_id 

    belongs_to :groups 
    belongs_to :users 
end 

すべてのヘルプは大歓迎です。

答えて

0

私は物事を間違った方法で見ている可能性がありますが、:groupとモデルbelongs_to :groups(複数)のスコープがあるようです。あなたのユーザークラスにはグループ属性の表示がないようですが、その関連が特異であった場合は1つになります。

+0

非常に高く評価されています。スコープは実際のフィールド名:group_idである必要があります。正しい方向に私を指してくれてありがとう。 – bryangm

関連する問題