私はRubyとRailsから始めて、Devise with Rails 3を試しています。投稿のリストの周りにループがあり、それぞれにユーザーが関連付けられています。現在のユーザーに関連付けられている投稿の編集コントロールのみを表示したい。
<% @posts.each do |post| %>
<%= link_to "show" %>
<% if current_user = post.user %>
<%= link_to "edit" %>
<% end %>
<% end %>
(上記は単純化されており、メモリからのものであるため、構文が完全に正しいわけではないと確信していますが、要点はわかります。)
ログインしているユーザーがいない場合、投稿は意図したとおりに表示されます。リンクはありますShowが、リンクはありませんEdit。Editただし、ログインしていると、別のユーザーが作成したモミの投稿も含めて、すべてのリンクが表示されます。
コンソールで確認しましたUser.find(1) != User.find(2)が、何らかの理由で、current_user = post.user現在ログインしているユーザーに関係なく、がtrueと評価されます。これは、「実際の」userオブジェクトではなく、current_userがヘルパーであることに関係していますか?current_user比較を行うために実際の現在のユーザーを取得するにはどうすればよいですか?
ありがとう、
ダン