私はまだRailsに精通しており、Rails3.2を使用して解決しようとしている問題に関して質問があります。これが私の問題があると思う問題のいくつかのファイルへのリンクです:
https://gist.github.com/0fe5cf9093b21f4f632f
コードが本当に悪い場合はお詫びします/私はまだすべてがどのように機能するかに慣れようとしているので、存在する必要のないいくつかのものを追加します。
私のウェブサイトで行われた投稿ごとにコメントを付けたいのですが、私が持っている論理は、ユーザーには多くのコメントがあるということです。投稿にはユーザーを通じて多くのコメントがあると思います。私はその関係を追加しました(特に何もしていないようですが)、すべてのテーブル参照が正しいように感じます(ただし、deviseとを使用しているため、ユーザーには何も追加していません)投稿自体は別のオブジェクトであるため、何かを追加する必要があるとは感じませんでした)。
今のところ、コメントを作成して保存できるように、一般的にすべてのコメントを表示できます。また、少なくともuser_id
変数を保存していたので、どのアカウントがコメントを作成しているかを理解できます。どこでいつ渡すのかよくわからないpost_id
ので、それが最大の問題です。とにかくposts_controller
(理論的には投稿ページがロードされたときにその属性を編集できるはずなので)でそれをやろうとすると、
undefined method 'post_id'
また
no post_id column
エラー、私が理解している限り、私はそれを定義しましたが、それが存在しないことを示します。user_id
前述のように、を保存できるという事実は、私をさらに混乱させます。
ショービューで作成されたコメントに属性を表示すると、次のようになります。
{
"id"=>1,
"content"=>"text here",
"posted"=>Sat, 03 Nov 2012 20:36:53 UTC +00:00,
"user_id"=>1,
"created_at"=>Sat, 03 Nov 2012 20:36:53 UTC +00:00,
"updated_at"=>Sat, 03 Nov >2012 20:36:53 UTC +00:00
}
post_id
コメントのために移行テーブルに追加しましたが、ありません。@post.id
投稿コントローラーで(投稿の下にあるshowメソッドのコメントのインスタンスに)渡そうとすると、一括割り当てエラーが発生します。:class
とオプションをいじり回して:foreign_key
も、あまり効果がありません。Rails自身のドキュメントの一部を含む私が行った調査に基づくと、私は完全なhas_many
関係が必要だとは思いませんが、それに応じて情報を保存するために必要なものがどこにないのかわかりません。
おそらくこれは、データベースとモデルの関係の設計についての私の理解が不足していることが一因ですが、助けていただければ幸いです。私はいくつかの同様の質問を見てきましたが、それでも私自身の特定の問題の文脈にそれらの解決策を適用することは難しいと思います。