基本的には、ユーザーがblacklist_usersまたはwhitelist_usersを追加したかどうかを確認してから許可または拒否しますが、 (us_idは基本的USER_IDある)Ruby on Railsはホワイトリストとブラックリストを使用して現在のユーザーにページを表示させることができます
関係: Blacklist_userモデル:
belongs_to :b_page
Whitelist_userモデル:
belongs_to :b_page
B_pageモデル:
has_many :whitelist_user
has_many :blacklist_user
コントローラ:
if !(@b_page.whitelist_user.empty?)
@whitelist_users = @b_page.whitelist_user.map(&:us_id)
@whitelist_users.push(@b_page.user.id)
else
@whitelist_users = []
end
if !(@b_page.blacklist_user.empty?)
@blacklist_users = @b_page.blacklist_user.map(&:us_id)
else
@b_page.blacklist_user = []
@blacklist_users = @b_page.blacklist_user.map(&:us_id)
end
ビュー:
<% if ((!(@whitelist_users.empty?)) && @whitelist_users.include?(current_user.id)) || ((!(@blacklist_users.empty?)) && @blacklist_users.exclude?(current_user.id)) %>
<!-- show bpage -->
<% elsif ! ((!((@whitelist_users.empty?)) && @whitelist_users.include?(current_user.id)) || ((!(@blacklist_users.empty?)) && @blacklist_users.exclude?(current_user.id)))%>
<!-- user not allowed-->
<% else %>
<!-- show bpage-->
<% end %>
が、私は私が(ところで、私が工夫を使用) を取得する@ b_page.userとしてサインインそれをさらに複雑にする代わりに、これを実装するための良い方法がありますか?
blacklist_usersとwhitelist_usersがユーザーモデルに関連している必要がありますが、それらはb_pageモデル –
にのみ関連しています。ホワイトリストとブラックリストを一緒に使用することもできます –