私は最初のRoRアプリケーション - フォーラムを作成しています。私はフォーラムにコメントを追加しようとしていますが、いくつかのエラーが発生しています。私は同様の問題についてはグーグルではありますが、私の問題を解決するようなものはありません。ここに私のコードは次のとおりです。Ruby on rails - コメントを作成できません。 NoMethodError
コメントコントローラー:
class CommentsController < ApplicationController
def create
@forum = Forum.find(params[:forum_id])
if [email protected]?
puts "Forum object is not nil"
end
@comment = @forum.comment.create(comment_params)
redirect_to forum_path
end
private
def comment_params
params.require(:comment).permit(:body)
end
end
フォーラムコントローラが自動生成され、私が変更されていないで、あなたはまだそれを見たい場合は(生成された使用して、レールを聞かせて、足場のフォーラムを生成します。私は以下
class Comment < ApplicationRecord
belongs_to :forum
end
class Forum < ApplicationRecord
has_many :comments
validates :title, presence: true,
length: {maximum: 50}
validates :body, presence: true
end
は、フォーラムのページ
ためshow.html.erb
からのセクションのための形式です)知っています そして、これは、レールからのエラーです:下記の抽出物を用いた
undefined method `comment' for #<Forum:0x444d518>
:あなたのフォーラムモデルでhas_many :comments
関連が欠落することができるように
end
@comment = @forum.comment.create(comment_params) #highlighted
redirect_to forum_path
end
1)は3日のうちの方法ですRailsの。 2)あなたの投稿をフォーマットしてください。 – coreyward
私はcorewardに同意します、もしこれが新しいアプリケーションならば、Rails 5を使うことをお勧めします。少し古いバージョンを望むなら、最新のRails 4を使います。あなたのモデルクラスが 'ApplicationRecord'あなたがRails 5を使っていると信じてください。 –