Ruby on Rails передача параметров между представлениями из тега link_to вместо submit_tags (имеющих оба параметра на странице)
-
06-07-2019 - |
Вопрос
Я создаю на своей индексной странице моей программы ruby on rails список наиболее часто используемых терминов в моей базе данных, и, следовательно, каждый раз, когда пользователь выбирает определенную категорию, это записывается в другую базу данных.
То, что я хотел бы, чтобы создать гиперссылку и передать определенное количество параметров форме, как это обычно делается с помощью select_tag, но вместо этого просто с помощью гиперссылки я хотел бы передать набор скрытых полей, которые у меня есть на странице, а также то, что выбрал пользователь.
Чтобы дать вам лучшее представление, в принципе, у меня есть следующая структура в моей программе:
Пользователь вводит поиск по (index.html.erb
), пользователь нажимает на тег отправки
действие, пользователь переходит к search.html.erb
страница и отображается набор уточненных категорий + несколько полей, кнопка отправки,
пользователь попадает в closest.html.erb
(который использует параметры из предыдущей формы путем вызова params[:searchSelected]
и несколько других параметров.)
Я также хотел бы добавить эту функциональность:Имитируйте эту же операцию, но вместо того, чтобы входить в search.html.erb
, я бы нажал на уже доработанную категорию поиска на index.html.erb
страница (из link_to
, передают в качестве параметров, которые link_to выбрал пользователь + скрытые поля.
в настоящее время у меня есть этот код
@stats.each do
|scr|%>
<%= link_to scr.category, :action => 'closest', :id => scr.category%>
Я не уверен, актуально ли это, но в настоящее время у меня есть следующие маршруты в моем routes.rb
файл
map.resources :stores, :collection => { :search => :get }
map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'
кто-нибудь, пожалуйста, поможет мне, пожалуйста?это мой первый проект ruby on rails, и я бы очень хотел найти способ обойти это, пожалуйста
Решение
Я не уверен, что это то, о чем вы подумали, но вы можете добавить дополнительные параметры к тегу link_to .Затем они будут доступны в вашем контроллере.Итак:
<%= link_to scr.category, :action => 'closest', :id => scr.category, :other_param => "test" %>
Будет доступен в вашем контроллере.
def closest
params[:other_param] == "test" #this will be true
end
Другие советы
мне удалось решить эту проблему, взяв params[:id]
и затем в соответствии со значением либо установите мои собственные значения (вместо скрытых в index.erb, которые я все равно установил вручную), и в противном случае продолжайте, как обычно, если бы я разместил обычный поиск
Вид:
<%= link_to obj.ptc_devicename ,"/wiuconfig/hd?idval=#{obj.id.to_s}&val=#{@devicetype}",:value => obj.ptc_devicename,:id =>obj.id %><br/>
Контроллер:
@Heading= params[:val]
@id=params[:id]
значением будет id равно 2, а val - @devicetype