我是一个ruby / rails新手,并且在组和用户(用户belongs_to组)之间有一个belongs_to关系。
我想要以下类型的网址:
www.mysite.com/abcd/user/1 - (注意“组”不是URL的一部分)
其中abcd是组名,1是用户ID。 这很容易吗?我该怎么做呢?
谢谢!
答案 0 :(得分:1)
我不确定,但试试这个:
scope :path => '/:group_name' do
resources :users
end
如果您使用此方法,则必须按params[:group_name]
找到您的论坛。
答案 1 :(得分:1)
是的,在Rails 2和3中都很容易做到。
假设您正在使用Rails 3,您可以这样做
match ":group/user/:id", :to => "group#user"
当你使用匹配方法时,带有前一个冒号的URL部分将成为参数,因此在你的控制器中你可以使用params [:group]和params [:id]。 :to paramater定义控制器和动作,因此在这个例子中它会将请求发送给GroupController和用户动作。 :实际上可以指向任何Rack应用程序的终点,“cont#action”只是一个简写。
如果您正在使用资源,您可以正常设置这些资源,然后在堆栈中的其他位置定义此非标准路由,并且两者都将并排运行。