在不同的控制器视图中显示filterrific表单

时间:2015-07-14 14:06:34

标签: ruby-on-rails-4 filterrific

我想在我的应用程序的登录页面中显示filterrific表单。如何让表单响应不同的控制器操作?

以下代码来自Filterrific Sample Application。我想搜索并过滤学生模型。我希望我的应用程序的用户能够从欢迎控制器的主页搜索学生。



 public SyncHelper(Context context, String accountName) {
        Account account = null;
        Account[] accounts = AccountManager.get(context).getAccounts();
        for (Account acc : accounts) {
            if(acc.name.equals(accountName) && acc.type.equals(ACCOUNT_TYPE)){
                account = acc;
            }
        }
        if(account == null){
            throw new InvalidParameterException("Account not found");
        }
        init(context, account);
    }




此代码有效,因为我在学生控制器的index.html页面中进行了filterrific设置。我想在我的欢迎控制器的主页中显示此表单,以便当用户放置他们的过滤条件并进行搜索时,它会将他们带到学生索引页面及其搜索结果。我如何从那里开始工作?我应该对表单做些什么改变?

查看此页面以获取示例应用程序。 Example Filterrific application

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您需要针对所需行为执行以下操作:

  • 覆盖:url上的form_for_filterrific选项,以便提交StudentsController#index而不是主页。
  • 关闭ajax自动提交并手动提交表单。基于表单id attr添加Ajax行为。因此,关闭Auto ajax submit的最简单方法是更改​​id。
  • 在表单中添加Submit按钮以进行手动提交。

以下是相关代码:

<%= form_for_filterrific(
      @filterrific, 
      url: students_path, 
      html: { id: :manual_filterrific_form }
    ) do |f| %>
  [form inputs go here ...]
  <%= f.submit "Show students" %>
<% end %>

现在表单显示在主页上。当用户设置过滤器并点击“显示学生”时,他们将转到StudentsController#index并查看已过滤的学生列表。