我希望将用户ID放在我的应用程序URL中。我已经设置了所有设置的默认配置,我想要完成的是在用户登录时拥有一个URL,如下所示:
application.com/ 用户ID / 页
当他们没有登录时
application.com/ 页
这可能与Devise有关吗?
提前致谢。
答案 0 :(得分:0)
您只需创建一个查找:id参数的路由,然后确保在导航到路径时传递:id参数。这是一个简单的例子:
routes.rb
get '/page', to: 'pages#page', as: :guest_page
get '/:id/page', to: 'pages#page', as: :user_page
<强> page.html.erb 强>
<% if user_signed_in? %>
<%= link_to "page for logged in user", user_page_path(current_user) %>
<% else %>
<%= link_to "page for guest user", guest_page_path %>
<% end %>
此外,如果有许多路径,您将需要在视图外部将此逻辑提取到辅助方法或装饰器中。
答案 1 :(得分:0)
实际上路由比设计更多。 范围您的路线
class BarView(CreateAPIView):
serializer_class = BarSerializer
queryset = Bar.objects.all()
def perform_create(self, serializer):
return serializer.save(user=self.request.user, foo=serializer.foo_object)
http://api.rubyonrails.org/classes/ActionDispatch/Routing/Mapper/Scoping.html