2015-07-09 4 views
0

У меня есть следующие формыОтправить Params как часть URL в рельсах

<%= form_for :key, url: unblock_keys_path, :html => {:method => :get} do |f| %> 
    <%= f.text_field :value %> 
    <%= button_to "Unblock", method: :get %> 
<% end %> 

, который работает хорошо, когда я ввожу ключевые значения в текстовом поле. Но я хочу, чтобы пользователь мог получить доступ к конечной точке непосредственно из URL-адреса.

Сейчас params этот запрос генерирует являются:

{ "utf8" => "✓", "ключ" => { "значение" => "x0vdPYWb9nAfyNjFS-UAGQ"}, «authenticity_token "=>" + Oi45DHYpPAiNbKrw5kNjWMVrQgCyLsBkhVb7huB0dr + хт/oKXxzTShajVUYEWxl9qlFLfjWsP4C4JM30DTGoA ==», "контроллер"=> "ключи", "действие"=> "разблокировать"}

URL: http://localhost:3000/keys/unblock?utf8=✓&key%5Bvalue%5D=x0vdPYWb9nAfyNjFS-UAGQ&authenticity_token=%2BOi45DHYpPAiNbKrw5kNjWMVrQgCyLsBkhVb7huB0dr%2Bxm%2FoKXxzTShajVUYEWxl9qlFLfjWsP4C4JM30DTGoA%3D%3D

Я хочу иметь доступ localhost:3000/keys/unblock?<key_value>

Какие изменения необходимо внести в моих запросах и маршрутах?

ответ

0

Этот localhost:3000/keys/unblock?<key_value> недействительный адрес *. ? обозначает начало параметров, а затем все после этого должно иметь форму «имя = значение», соединенное с «&».

Возможно, вы имели в виду localhost:3000/keys/unblock/<key_value>?

Если так, то добавить маршрут как

get '/keys/unblock/:value', to: 'keys#unblock' 

Это будет посылать, например, /keys/unblock/foo вашему разблокирование действия с params[:value] = "foo"

* примечание - технически это не является незаконным, но он плохо сформирован и почти наверняка не что ты хочешь делать.

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