2011-02-04 108 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 
相關問題