2011-02-04 109 views
4

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

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

def action_name(variable_name) 
    ... 
end 

我怎样才能通过“变量名”的值,使用此语法

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

?可能吗?

+0

你为什么要这样做?你能举一个例子吗?我不认为这是可能的。 – 2011-02-04 13:30:06

回答

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 

此代码将传递变量名作为查询字符串的URL中的一部分:http://site.com/something?variable_name=dog 显然,不使用这种方法对敏感数据,并使用:session [:variable_name]来代替。

1

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

1

我建议你使用sessionflash。例如

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

def action2 
    @some_object = session[:your_key] 
    # ... 
end 
相关问题