我正在使用Ruby on Rails 3。
在我的控制器里,我有(我可以吗?!):
def action_name(variable_name)
...
end
如何使用此语法
传递“variable_name”的值[...] :url => { :action => :action_name("name") } [...]
?有可能吗?
答案 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)
我建议您使用session
或flash
。例如
def action1
session[:your_key] = some_object
redirect_to some_action_path
end
def action2
@some_object = session[:your_key]
# ...
end