2010-02-20 45 views
2

我想让我的滑轨控制器更加灵活,并尝试为它创建一些Meta foo。在ruby中调用方法/函数的字符串?

我有一个redirect_to方法的问题。我可以从字符串转换“edit_admin_post_path()”方法吗?或者更好地读出控制器名称并动态传递它?

这是我的代码“post”在我的Admin :: Posts控制器中。

respond_to do |format| 
    format.html { redirect_to(edit_admin_post_path(@object)) } 
end 

的感谢!

回答

5

我不明白你想要做什么,但是有多种方法可以实现你的请求。一个是

what = "post" 
respond_to do |format| 
    format.html { redirect_to(send("edit_admin_#{what}_path", @object)) } 
end 

请记住,edit_admin_post_path等于

url_for(:controller => "admin/posts", :action => "edit", :id => @object) 

所以,你总是可以做

what = "post" 
respond_to do |format| 
    format.html { redirect_to(url_for(:controller => "admin/#{what.pluralize}", :action => "edit", :id => @object)) } 
end 

或更好,如果你要根据动态重定向到编辑动作到当前的控制器,只需传递选项的散列。

respond_to do |format| 
    format.html { redirect_to(:action => "edit", :id => @object) } 
end 
+0

谢谢,这有助于很多! – xaver23 2010-02-20 18:06:10