Rails 3 - сделать "link_to", используя выбранное значение из коллекции select - PullRequest
0 голосов
/ 19 октября 2011

Привет всем.

У меня есть форма в моем приложении rails 3, и одним из полей является "выбор коллекции", подобный этому

<div class="field">
<%= f.label :provider_id, "Provider" %>
<%= collection_select( :purchase_document, :provider_id, Provider.all, :id, :name) %>
</div>

Идея,должен иметь возможность добавить «link_to», используя выбранное значение из «выбора коллекции», то есть:

<div class="field">
    <%= f.label :provider_id, "Provider" %>
    <%= collection_select( :purchase_document, :provider_id, Provider.all, :id, :name) %> <%= link_to "Show", provider_path(***selected option from collection select***)%>

Но я не знаю, как получить выбранное значение.Есть ли способ сделать это с помощью рельсов?

Надеюсь, вы сможете мне помочь, спасибо

Ответы [ 2 ]

3 голосов
/ 20 октября 2011

Не знаю, хотите ли вы это сделать, но если вы хотите динамически изменять ссылку, когда пользователь выбирает различные элементы в раскрывающемся меню, вам необходимо реализовать это с помощью сценариев на стороне клиента, таких как Javascript (или Coffeescript). Ruby on Rails может выполнять только сценарии на стороне сервера, любое динамическое поведение, связанное с браузером, должно выполняться с помощью сценариев на стороне клиента.

0 голосов
/ 19 октября 2012

Совершенно возможно обойтись в рельсах без javascript.Мы сохраняем все параметры в params (то есть в url) и отправляем форму с методом «get» (а не post как обычно), чтобы у нас были все эти params в url.

В следующем примередолжно работать, чтобы написать имя в текстовом поле и получить страницу, где имя передается в качестве параметра в URL.(например http://myapp.com:3000?user_name=andres&phone_number=123456)

Просмотр файла:

= form_tag(reloadindex_aplication_path, method: :get) do
  Name:
  = text_field_tag 'user_name', params[:user_name]
  Phone:
  = text_field_tag 'phone_number', params[:phone_number]
  = submit_tag "Search..."

Файл контроллера:

def reloadindex
  redirect_to aplication_path({:user_name => params[:user_name], :phone_number =>  params[:phone_number]})
end
...