2

ユーザーリソースがあり、そのユーザーがログインしている場合にのみ、show.html.erbファイルに「編集」リンクを表示したいと思います。スクリーンショットを参照してください。

これがユーザーのリストです。 右上にあるRogerSterlingがログインしていることに注目してください。

これがユーザーのリストです。右上にあるRogerSterlingがログインしていることに注目してください。

しかし、Don Draperをクリックすると、show.html.erbファイルに

しかし、Don Draperをクリックすると、show.html.erbファイルに[編集]ボタンが表示されます。この場合、ロジャー・スターリングにのみ表示したいと思います。

認証にDeviseを使用しています。これを達成する方法について何かアイデアはありますか?利用可能なコードを確認する必要がある場合はお知らせください。

4

2 に答える 2

3

current_userを確認すると、ユーザーが表示されます。同じ場合は、[編集]リンクが表示されます。次のようなヘルパーメソッドを定義できます。

def correct_user?(user)
  user == current_user
end

UsersControllerのshowアクションでは、次のようになります。

def show
  @user = User.find(params[:id])
  ...
end

そしてあなたの見解では、あなたはチェックすることができます:

<% if correct_user?(@user) %>
  <%= link_to 'Edit', @user %>
<% end %>
于 2012-11-05T07:01:45.793 に答える
2

ハ。はい、分かりました。

show.html.erbファイルのループは次のとおりです。

<% if (@user.name == current_user.name) %>
    <%= link_to 'Edit', edit_user_registration_path(@user) %> 
<% end %>  

そしてヘルパーメソッド:

def correct_user
    user == current_user
end

正しい方向に進んでくれてありがとう!

于 2012-11-06T05:02:55.103 に答える