フィールド「user_id」と「post_id」を持つテーブル テストがあります。user_id post テーブルから current_user.id と post_id でフェッチします。このために私は:テストコントローラで: -
def create
@user = current_user
@test = Test.new(params[:test])
@post = Post.find(params[:id])
@test.post_id = @post.id
@test.user_id = @user.id
respond_to do |format|
@test.save
format.html { redirect_to(:back, :notice => "successfull") }
else
format.html { render :action => "new" }
end
end
私のモデルでは、関連付けを作成します:-
test.rb で:
belongs_to :post
post.rb で:
has_many :test
表示ページは次のとおりです。
= form_for @test, :validate => true do |f|
.span
= f.text_field :email, :placeholder =>"Email Address"
.span
= f.label :name
= f.text_field :name
.span
= f.submit "Save"
user_id は適切に保存されますが、post_id の場合はエラーが発生します。
Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id
どうすればその問題を解決できますか?