Передать дополнительные параметры контроллеру - PullRequest
2 голосов
/ 29 октября 2009

У меня есть эта ссылка для создания новой страницы:

<p><%= link_to "Add a page", :action => "new" %></p>

Код, вызываемый в контроллере:

def new
  @page = Page.new
  @visuals = Visual.find(:all)
end

Я хотел бы передать дополнительный параметр для предварительной установки поля в форме, что-то вроде этого:

<p><%= link_to "Add a page", :action => "new/parent_id/2" %></p>

и в контроллере

def new
  @page = Page.new
  @page.parent_id = params[:parent_id]
  @visuals = Visual.find(:all)
end

Ответы [ 2 ]

4 голосов
/ 29 октября 2009
link_to "new", :action => 'new', :parent_id => 1

... даст вам:

/controller/new?parent_id=1

Если вы возитесь с маршрутами, вы можете сделать:

map.new_page_from_parent "/new_from_parent/:parent_id"

... и используйте так:

link_to "new", new_page_from_parent_path(:parent_id => 1)

# gives
/new_from_parent/1

# accessed via
params[:parent_id] => 1
1 голос
/ 29 октября 2009

Чтобы получить новый параметр без изменения маршрутов, просто передайте его в виде строки запроса:

new?parent_id=2

тогда он будет доступен как params[:parent_id]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...