开发者

How do I prefix a controller with the user name?

I am having some problems with the new routing in Rails 3. What is the best way to prefix the path with开发者_如何学Go a user name. Right now I have the following code:

resources :links, :path => '/:username' do
  put 'star', :on => :member
end

But it leaves params empty.

EDIT:

I would like to have a urls like:

/:username/links  
/:username/links/:id/star

And I would like to be able to fetch params[:username]


You can use scope for this, it's much neater:

 scope :path => ":username" do
   resources :links do
     put 'star', :on => :member
   end
 end


you should user nested resources

resources :users do
  resources :links do
    put 'star', :on=>:member
  end
end

then, if you implement to_param in user.rb

def to_param
  username.parameterize
end

Then you'll have

/:username/links
/:username/links/23
/:username/links/23/star
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜