簡単な質問:ビューにユーザーIDの代わりにユーザー名(私の場合は電子メール)を表示したいので、次のコードをビューに記述します。
<%= User.find(post.user_id).Email %>
しかし、契約MVCを破らないでください。このコードは、モデルに移動する必要がありますか?
簡単な質問:ビューにユーザーIDの代わりにユーザー名(私の場合は電子メール)を表示したいので、次のコードをビューに記述します。
<%= User.find(post.user_id).Email %>
しかし、契約MVCを破らないでください。このコードは、モデルに移動する必要がありますか?
まず、そのような大文字の電子メールを使用することはできません。クラス名ではなく、メソッド(小文字)の電子メールを呼び出す必要があります。
<%= User.find(post.user_id).email %>
おそらく、コントローラーで@user = User.find(@ post.user_id)を検索したい場合は、ビューで@ user.emailを実行できます...または、コントローラーで@user_emailを設定することをお勧めします。ビューからモデルを実際に呼び出すべきではありません。コントローラはモデルと通信し、データをビューに渡す必要があります。
だから、コントローラーでこのようなもの:
@post = Post.find(params[:id])
@user_email = @post.user.email
その後、ビューであなたはただすることができます
<%= @user_email %>