是否可以使用Ruby on Rails 3将变量传递给操作?

时间:2011-02-04 13:26:27

标签: ruby-on-rails ruby ruby-on-rails-3 variables

我正在使用Ruby on Rails 3。

在我的控制器里,我有(我可以吗?!):

def action_name(variable_name)
  ...
end

如何使用此语法

传递“variable_name”的值
[...] :url => { :action => :action_name("name") } [...]

?有可能吗?

3 个答案:

答案 0 :(得分:13)

在视图中::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

此代码将传递variable_name作为URL中查询字符串的一部分:http://site.com/something?variable_name=dog 显然,不要将此方法用于敏感数据,而是使用:session [:variable_name]代替。

答案 1 :(得分:1)

我不确定这是可能的。但是,为什么不使用params hash来获取该参数呢?

答案 2 :(得分:1)

我建议您使用sessionflash。例如

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

def action2
  @some_object = session[:your_key]
  # ...
end