Можно ли передавать переменные в действия, используя Ruby on Rails 3? - PullRequest
4 голосов
/ 04 февраля 2011

Я использую Ruby on Rails 3.

В моем контроллере у меня есть (можно??):

def action_name(variable_name)
  ...
end

Как я могу передать значение "variable_name", используя этот синтаксис

[...] :url => { :action => :action_name("name") } [...]

? Возможно ли это?

Ответы [ 3 ]

13 голосов
/ 04 февраля 2011

В представлении: :url => {:action => :action_name, :variable_name => 'dog'}

В контроллере:

def action_name
  variable_name = params[:variable_name]
  @something = Something.where(:name => variable_name)
  #More code in this method
end

Этот код будет передавать имя_переменной как часть строки запроса в URL: http://site.com/something?variable_name=dog Очевидно, не используйтеподход к конфиденциальным данным и используйте вместо него: session [: variable_name].

1 голос
/ 09 января 2013

Я предлагаю вам использовать session или flash.например,

def action1
  session[:your_key] = some_object
  redirect_to some_action_path
end

def action2
  @some_object = session[:your_key]
  # ...
end
1 голос
/ 04 февраля 2011

Я не уверен, что это возможно.Однако, почему бы вам не использовать хэш params вместо этого параметра?

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