【问题标题】:Rails form that redirects to show page重定向到显示页面的 Rails 表单
【发布时间】:2015-08-12 19:50:19
【问题描述】:

我正在使用 Rails 4 并且有一个 Policy 模型,其中包含一个字段 policy_number。

我想创建一个(类似搜索的)表单,您可以在其中输入 policy_number,它会将您重定向到该政策的显示页面。我不知道该怎么做,表单的操作应该是policy_path 还是什么?

谢谢!

【问题讨论】:

  • 我会使用 Ajax 调用...

标签: ruby-on-rails forms search


【解决方案1】:

这里最大的问题是用户在搜索表单中输入保单编号,因此在呈现表单时您无权访问它。如果不使用 JavaScript,您将无法通过输入的保单编号直接进入保单。

不过,这是一个可能的起点。使用index 方法创建PolicySearchController,为其添加路由,并创建一个简单的表单。

app/controllers/policy_search_controller.rb

class PolicySearchController < ApplicationController
  def index
    policy = Policy.where(policy_number: params[:policy_number]).first

    if policy.present?
      redirect_to policy
    else
      redirect_to :policies, alert: "No matching policy found."
    end
  end
end

config/routes.rb

resources :policy_search, only: :index

app/views/policies/index.html.erb

<%= form_tag policy_search_index_path, method: :get do -%>
  <%= text_field_tag :policy_number -%>
<% end -%>

如果需要,现在您可以对其进行迭代以添加 JavaScript、模糊匹配等。

【讨论】:

  • 必须是新的控制器吗?即我可以在现有的方法中添加一个方法吗?
  • 当然,您可以将其作为非 RESTful 操作添加到现有控制器中。
猜你喜欢
  • 1970-01-01
  • 2020-04-26
  • 2019-01-30
  • 2014-02-26
  • 2013-08-17
  • 2015-05-06
  • 2017-10-25
  • 2013-07-22
  • 1970-01-01
相关资源
最近更新 更多