2012-09-05 59 views
1

我试图访问我的Rails应用程序中的资源,我想根据URL中的变量填充信息。鉴于网址:Rails:在URL中传递变量

someapp.com/resources/variable/resource 

我想给variable传递到Rails的添加元素,以resource。是否有任何快速重新布线的方式来实现这一目标?还是它非常复杂?

干杯!

回答

7

这不应该是“疯狂复杂”,但它不是很清楚你想完成什么。

你可以尝试添加路由具有可变段:

get "/resources/:variable/resource" => "controller#action" 

然后,在你的控制器,接入params[:variable]


如果您已经拥有的资源定义,您可以通过以下增加一个额外的“成员”路线:

resource :resources do 
    get :resource, on: member 

    # or 

    member do 
    get :resource 
    end 
end 

无论是以前的可以让你的控制器路由/resources/:resource_id/resource到资源控制器resource操作。

+0

这是给我的线索,是的。但是如果“资源/资源”已经存在,它似乎不起作用。在我的'routes.rb'中,我已经有'resources:resources'。 –

+0

查看我的更新。另外,资源对于资源来说是一个非常糟糕的名字。您的资源应具有特定的名称,以匹配它们代表的内容。 – meagar

+0

啊,那真是太棒了!干杯。我的资源没有被命名,我只是用它来举例。其结果是远比应该复杂得多。 –