私はUserとGigという2つのクラスと、結合テーブルUsergigを持っています。Ruby/Sinatra/DataMapper多対多オブジェクトの作成方法
class Usergig
include DataMapper::Resource
property :id, Serial
belongs_to :user
belongs_to :gig
end
class Gig
include DataMapper::Resource
property :id, Serial
property :gigname, String
property :gigtext, Text
has n, :usergigs
has n, :users, :through => :usergigs
end
class User
include DataMapper::Resource
property :id, Serial
property :username, String
property :realname, String
has n, :usergigs
has n, :gigs, :through => :usergigs
end
と私が実行しようとすると:
post '/gig/add' do
user = User.get(1)
gig = user.gigs.create(:gigname => params[:gig_gigname], :gigtext => params[:gig_gigtext])
end
私はエラーを取得する: `ギグ/ 未定義のメソッドを追加/時 NoMethodErrorには、「? nil:NilClass
私は今約2時間グーグルで行き、DataMapperのドキュメントを読んでいます。 誰かが間違っていることを知っていますか? Usergigで
投稿を編集して読みやすくしました。コードを貼り付けて(行番号を付けずにコピー/貼り付けできるようにしてください)、それを選択してCMD + K(Mac)またはctrl + K(PC)を押してください。 – d11wtq
':through => Usergig'を試しましたか? – d11wtq
完全なスタックトレースを送信します。 – d11wtq