2016-04-21 7 views
0

私はKaminari Paginateを使用してユーザーをトラバースし、評価を行っています。しかし、特定のユーザーは、特定のユーザーのみを評価することができますが、そのすべてを評価することはできませんが、これについてどうやって行くのか混乱しています。表示したいユーザーの配列を作成しようとしましたが、Rubyで非常に新しいので、正しく機能しませんでした。私はデータベース内の特定のユーザーにページネーションを使用する

<% @users.each do |user| %> 

は、リスト全体を横断されたものですが、私は私のニーズにそれを編集する方法を確認していないことを理解しています。たとえば、ユーザーごとに役割属性があります。各役割を持つユーザーは、同じ役割を持つ他のユーザーのみを評価したいと思います。私は

<% @users.each do |user| if @user.role == 1 %> 

ような何かをやって試してみましたが、私はその正確なコードverbatumは私が好きなように動作しないことを知っているが、それは、私はそれが可能だ場合は何をしたいの例です。要約すると、ページ区切りのリストに含まれる人を選択したいと思います。以下は私がしようとしているコードです。各ユーザーにはフォームがあります。

<h2>Back of House Evaluation</h2> 
<br> </br> 

<% @users.each do |user| %> 

<h4> <%= user.name %> </h4> 
<h3> Do you have HEART?</h3> 


<%= form_for(user) do |f| %> 
<% begin %> 


     <div class="form-group"> 
     <%= f.label :Hunger_for_wisdom %></label 
     <div class="col-xs-10"> 
     <div class="form-inline"> 
     <div class="form-group"> 
      <%= f.radio_button :current_one, 1 %> 
      <%= f.label :_1 %> 
     </div> 
     <div class="form-group"> 
      <%= f.radio_button :current_one, 2 %> 
      <%= f.label :_2 %> 
     </div> 
     <div class="form-group"> 
      <%= f.radio_button :current_one, 3 %> 
      <%= f.label :_3 %> 
     </div> 
     <div class="form-group"> 
      <%= f.radio_button :current_one, 4 %> 
      <%= f.label :_4 %> 
     </div> 
     <div class="form-group"> 
      <%= f.radio_button :current_one, 5 %> 
      <%= f.label :_5 %> 
     </div> 
    </div> 
</div> 

    <div class="col-md-3 col-md-offset-4"> 
    <%= f.submit "Submit Score", class: "btn btn-default" %> 



    <% rescue ActionController::RedirectBackError %> 


</div> 
</div> 
<% end %> 

<%= paginate @users %> 

<% end %> 

<% end %> 

ありがとうございます!

<% @users.select{|u| u.role == @user.role}.each do |user| %> 
    # your logic/content here 
<% end %> 

この方法では、@userの役割の役割を持つユーザーのみが反復されている:

答えて

0

あなたのコレクションにこのような何かを行うことができ、@userはユーザーの目に見えるリストをフィルタリングするために使用されると仮定すると、スルー。

希望すると助かります!

+0

ありがとう、私はそれを見てみましょう! – user3376654

2

これを達成する方法の1つは、ユーザーリストにreject!という方法を使用することです。

<% @users.each do |user| %> 

によって:

<% @users.reject!{|u| u.role != 1}.each do |user| %> 

をしかし、私はないビューで、controllerにリストから不要なusersをフィルタリングすることを好むだろう交換してください。 role_idロール(あなたの例のための1)のIDであり、params[:page]はあなたがKaminariからロードするページ番号です

@users = User.where(:role => role_id).page(params[:page]) 

:だからあなたのコントローラであなたのような何かを呼び出すことができます。

これがあなたを助けてくれることを願っています。

+0

ありがとうございました、私が帰ったら、コードを使って遊びます。私は指導に本当に感謝しています! – user3376654

+0

コントローラーパーツが完璧に動作!どうもありがとうございます!! – user3376654

+0

@ user3376654あなたの問題を解決する答えがある場合は、答えを受け入れたものとしてマークしてください。そうでなければ、お手伝いしてうれしいです。 – evedovelli

関連する問題