0

Railsアプリケーションで新しいオブジェクトを作成するためのフォームを送信すると、次のエラーが発生します。

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'

私のコントローラーで問題となっている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_todo|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

どんな助けでも大歓迎です。

4

1 に答える 1

0

私は物事を間違った方法で見ている可能性がありますが、あなたにはスコープが:groupあり、代わりにモデルbelongs_to :groups(複数形)があるようです。ユーザークラスにグループ属性の表示はないようですが、関連付けが単一の場合は表示されます。

于 2012-04-24T03:41:12.873 に答える