0

ransack をインストールしましたが、使いやすそうです。ただし、検索をクリックするとページが更新されるだけで、適切なデータが表示されません。このページには、登録されているすべてのユーザー名 (管理者とユーザー) を一覧表示する検索ボックスがあります。検索ボックスに「admin」と入力し、検索をクリックするとページがリロードされ、すべての登録済みユーザー (管理者とユーザー) が引き続き表示されます。検索後にのみ「admin」が表示されるはずです。なぜこれが起こっているのかについて何か考えはありますか?

ユーザーコントローラー:

  def index
     @search = User.search(params[:q])
     @users = @search.result
     @users = User.all
   end

index.html:

<%= search_form_for @search do |f| %>
  <div class="field">
    <%= f.label :username_cont, "Name contains" %>
    <%= f.text_field :username_cont %>
  </div>
  <div class="actions"><%= f.submit "Search" %></div>
<% end %>

<% @users.each do |user| %>
    <li>
       <%= link_to user.username, user %>
        <% if current_user.admin? || current_user == @user %>
            <%= link_to "Edit #{user} profile", user %>
            | <%= link_to "delete", user, method: :delete,
                                          data: { confirm: "You sure?"} %>
        <% end %>
        </li>
        <% end %>
4

2 に答える 2

0

で検索結果を上書きしています@user = User.all。その行を削除します。

それがあなたが使用しているランサックビルダーであり、現在のページに戻ると言ったので、あなたのフォームはおそらく問題ありません。現在のページに戻ったときhttp://localhost:3000/users?q= (search parameters here)に、URL に表示されますか?

于 2013-04-24T17:51:43.367 に答える