2015-05-29 2 views
0

Я использую Rails 4 и имею модель Policy с полем policy_number.Рельсы формы, перенаправляемые на страницу

Я хотел бы создать форму поиска, в которую вы вводите policy_number, и перенаправляет вас на страницу показа этой политики. Я не уверен, как это сделать, если действие формы должно быть policy_path или что-то в этом роде?

Спасибо!

+0

Я бы с Ajax звонил ... –

ответ

1

Самая большая проблема заключается в том, что пользователь вводит номер политики в форме поиска, поэтому у вас нет доступа к ней во время визуализации формы. Без использования JavaScript вы не сможете перейти непосредственно к политике по введенному номеру политики.

Вот возможная отправная точка. Создайте PolicySearchController с помощью метода index, добавьте маршрут к нему и создайте простую форму.

приложение/контроллеры/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 

конфигурации/routes.rb

resources :policy_search, only: :index 

приложение/просмотров/политика/index.html.erb

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

Теперь вы можете переименовывать это, чтобы добавить JavaScript, нечеткое сопоставление и т. Д., Если это необходимо.

+0

Должен ли он быть новым контроллером? то есть я могу просто добавить метод к существующему? – Vasseurth

+0

Несомненно, вы можете добавить его как действие, отличное от RESTful, к существующему контроллеру. – Curtis

Смежные вопросы