0

私は Ruby on Rails 3.2.2 を使用しており、私のシステム実装以来、「アクセサユーザーの承認 (forたとえば、許可は、「アクセスされた」ユーザーが現在の「アクセスユーザーであるどうかによって異なります)。

どうすれば状況を処理できますか? つまり、たとえば、ユーザーが現在のユーザーであるかどうかを処理し、異なるコンテンツを表示するには、それぞれのケースに対して 2 つのビュー ファイルおよび/またはコントローラー アクションを実装するか、またはif elseビュー ファイルでステートメントを直接使用する必要があります。および/またはコントローラーアクションで?

4

2 に答える 2

0

私は通常、ビュー内でif elseステートメントを使用し、ステートメント間にマークアップが多い場合はパーシャルをレンダリングして、物事をクリーンに保ちます。

これはスタイルの選択ですが、すべてのページで大規模な条件文を作成していることに気付いた場合は、コントローラーで組織を再考するか、新しいリソースを作成する必要がある可能性があります。ユーザーが管理者の場合に「編集」または「削除」ボタンを追加するような単純なものについては、ビューで条件を使用します。

.html.erbマークアップの場合、次のような通常のif/elseブロックを実行できます。

<% if <condition> %>
  <%= render 'partial_name' %>
<% else %>
  <p>Some other content</p>
<% end %>

状態があなたの状態である場合、例えばcurrent_user? @user

于 2012-07-31T18:04:17.343 に答える
0

私がお勧めするよりクリーンなアプローチは、ユーザーごとに異なる役割を作成し、それらをグループ化することです。したがって、その特定のグループに対して、個別のビュー ファイルとコントローラーを使用できます。このアプローチの利点の 1 つは、コードが非常に読みやすく、コードを簡単に理解できることです。他のユーザーを気にすることなく、ページを簡単に制御できます。多くのフィルターの必要性を回避することさえできます。ただし、ユーザーのタイプが 2 つしかない場合は、if else ステートメントで簡単に管理できるため、適切な方法を選択することも問題によって異なります。

于 2012-07-31T18:46:50.983 に答える