0

私は Rails を初めて使用し、実際に何を参照しているのかを理解するために命名規則に苦労しています。非常によく似た名前の多くの項目 (モデル クラス、データベース テーブル、コントローラーなど) があるため、どのオブジェクトが参照されているかが例から常に明らかであるとは限りません。

協会のガイドでは、投稿とコメントを例として使用しています。実際に言及されていることを理解するのを手伝ってもらえますか?

協会 has_many :comments とは とは:comments?これはモデルクラスですか、それともコントローラですか?

関連付けられたオブジェクトを参照する場合: この例@post.comments.build は何ですか? commentsクラス、コントローラー、またはインスタンス変数ですか?

4

2 に答える 2

0

モデルは実際のオブジェクトを表します (したがって、モデルと呼ばれます)。コメント、投稿は実際のオブジェクト表現です。has_many :comments は、投稿に多くのコメントがあることを示す方法です。だからそれはモデルを参照しています。

コントローラーは、モデルのアクションが実行される場所です。作業を進めていくと、特定のモデルに対して複数のコントローラーが存在する可能性があることに気付くでしょう。コントローラーは、さまざまなイベントで何をするかを決める場所です。したがって、どのルートもコントローラ アクションにマップされます。

@post.comment.build は、コメントが多いモデル投稿に対して、モデル コメントのインスタンスを構築すると言っています。これにより、コントローラーの機能がトリガーされます。

于 2012-08-03T20:13:03.930 に答える
0

コメントはコントローラーではなくモデルです。これは、両方の例に当てはまります。1 つ目は、2 つのモデル間の関係の定義です。2 つ目は、コメント タイプの新しいオブジェクトで、投稿への参照が作成されて入力されます。

使用できる経験則は、モデルは通常コントローラーではなく、他のモデルを参照するということです。

于 2012-08-03T20:04:14.640 に答える