我正在尝试根据用户名而不是ID来获取自定义路由。我已经努力到达用户的显示页面,但我也试图嵌套资源,以便我可以使用相同的语法查看他的帖子和评论。
示例:
作品...... “mysite.com/users/username /”
不起作用...... “mysite.com/users/username/posts /”
的routes.rb
...
# Users with the Username...
match 'users/:username' => "users#show" do
get :posts
get :comments
end
# Users with the ID...
resources :users do
get :posts
get :comments
end
...
答案 0 :(得分:1)
也许您可以使用to_param方法并更新嵌套路由/资源:
routes.rb中:
resources :users do
resources :posts
resources :comments
end
user.rb
class User < ActiveRecord::Base
def to_param
username
end
end
..用于UserController中的查找:
@user = User.find_by_username(params[:id])
(或根据用户名标准查找的任何变体)