5

「ユーザー」が「メンバー」であるかどうかに基づいて条件を作成しようとしています。基本的に、 current_user.id がメンバーの user_id のいずれかと一致するかどうかを確認する方法が必要です。私が今持っている非動作コードは次のとおりです。

<% if current_user = @page.members %>
  you can view this content.
<% end %>

「current_user.idがメンバーの「user_id」に存在する場合」という行に沿って何かを探しています。

4

4 に答える 4

13

質問のフィールド名に基づいて、次のようになります。

<% if @page.members.map(&:user_id).include? current_user.id %>
  You can view this content
<% end %>
于 2012-04-23T23:50:07.823 に答える
5

変数に配列が含まれていると仮定すると、次のメソッド@page.membersを使用できます。include?

<% if @page.members.include? current_user %>
  you can view this content.
<% end %>

ID の配列を使用している場合は、もちろん、現在のユーザーの ID を探すためにテストを少し変更する必要があります。

<% if @page.members.include? current_user.id %>
  you can view this content.
<% end %>
于 2012-04-23T23:45:48.927 に答える
1
@member_ids = @page.members.map{|m| m.id()}

次に、以下のように状態を確認します

@memeber_ids.include? current_user.id()
于 2012-04-23T23:47:00.367 に答える
0

ことを行う必要があります前にinclude?言った。

CanCanと呼ばれる宝石についてお話しするためにお答えしています。これにより、承認「ヘルパー」に簡単にアクセスできます。

実際に行っていることを行う代わりに、CanCanを使用する必要があるのはなぜですか?

  1. ほとんどの場合、無駄なことを再発明しないでください。
  2. ビューにビジネスロジックを配置しています(悪い習慣)。
  3. CanCan はおそらく、セキュリティを考慮して開発されており、すべてのベスト プラクティスを念頭に置いています。
  4. 開発時間を節約できます。

繰り返しましたら申し訳ありません。

于 2012-04-24T00:06:22.117 に答える