我知道類似的問題已經被問及這個問題,我已經閱讀了所有這些問題,並沒有能夠找出一個明確的解決方案。在陳述我的問題之前,我會發布所有必需的代碼。註釋控制器中的Create方法不起作用。 Rails
的車型:
class Comment < ActiveRecord::Base
belongs_to :user
belongs_to :scoreboard
end
class User < ActiveRecord::Base
has_many :scoreboards, dependent: :destroy
has_many :comments, dependent: :destroy
end
class Scoreboard < ActiveRecord::Base
belongs_to :user
has_many :teams, dependent: :destroy
has_many :comments, dependent: :destroy
end
比分是類似文章頁面,在這裏用戶可以發表評論。
遷移的評論:
class CreateComments < ActiveRecord::Migration
def change
create_table :comments do |t|
t.text :body
t.text :reply
t.references :user, index: true
t.references :scoreboard, index: true
t.timestamps null: false
end
add_foreign_key :comments, :users
add_foreign_key :comments, :scoreboards
end
end
的問題是與創建在評論控制器方法。以下是該方法的代碼:
def create
@scoreboard = Scoreboard.find(params[:scoreboard_id])
@comment.user_id = current_user.id
@comment = @scoreboard.comments.build(comment_params)
redirect_to scoreboard_url(@comment.scoreboard_id)
end
current_user方法位於單獨文件夾中的助手文件中。 每當我提交形式一個新的評論,我收到以下錯誤:
undefined method `user_id=' for nil:NilClass
一個堆棧的問題指出,一個user_id列是必要的註釋,當我試圖遷移它所說的複製列不能創建。難道是因爲遷移中已有用戶的外鍵?我可能做錯了什麼?
哇哈哈。謝謝。 – kpaul
這就是如果你的其他代碼是好的。 –
問題正是你所說的。現在已經修復了。謝謝! – kpaul