Я снова застрял ... и еще раз подозреваю, что это глупая синтаксическая проблема:

Я хочу передать 2 значения в URL-адресе с помощью моей супер простой формы поиска.

Я ожидал такой URL: http: // mydomain / Categories / search? search = pdf & os = 2 Но я получаю вот что: http: // mydomain / Categories / search? search = pdf & os [] =

Я думал, это должно работать так:

<% form_tag  search_path, :method => 'get' do %>
  <%= text_field_tag :search, params[:search] %>
  <%= hidden_field :os, params[@category.id] %>
  <%= submit_tag "Search", :name => nil %>  
<% end %>

... но что ж, он этого не сделал ...

Кто-нибудь знает, где я ошибаюсь?

Благодарность!

Вал

2
val_to_many 18 Янв 2010 в 16:25

2 ответа

Лучший ответ

Вам нужно немного изменить строку, используя hidden_field_tag:

<%= hidden_field_tag :os, :value => @category.id %>

Дополнительную информацию см. В документации hidden_field_tag ​​.

6
Veger 18 Янв 2010 в 19:32
Замечательно! Спасибо, Вегер! Я получаю идентификатор через params [: symbol]: <% = hidden_field_tag: os, params [: id]%> Отлично работает!
 – 
val_to_many
18 Янв 2010 в 19:38
  <%= hidden_field :os, params[@category.id] %>

Собирается ли получить доступ к ключу в хэше params с помощью @ category.id, есть ли такой ключ? Похоже, нет, так как возвращается ноль.

Похоже, вы хотите что-то вроде

  <%= hidden_field :os, @category.id %>
2
rnicholson 18 Янв 2010 в 16:45