我的应用程序中有三个Devise模型:用户,发布者和内容创建者。
发布商继承自内容创作者,内容创作者继承自用户。
我在每个模型的视图文件夹中放置了一个自定义index.html.erb文件,而不是默认的用户index.html.erb文件,这意味着,如果发布者登录,我希望他们请参阅views / publishers中的index.hml.erb,而不是帖子中的index.hml.erb。
我为具有索引操作的内容创建者和发布者创建了单独的控制器。 这是我目前的路线档案:
devise_for :users
devise_for :publishers , :controllers => { registrations: 'registrations' }
devise_for :content_creators
resources :posts
get 'tagged' => 'posts#tagged', :as => 'tagged'
root "posts#index"
如何配置我的路线文件来执行此操作?
答案 0 :(得分:0)
由于每个人都是用户,因此您可以在视图中通过
进行检查if current_user.publisher?
<%= render 'view_for_publisher' %>
elsif current_user.content_creator?
<%= render 'view_for_content_creator' %>
else
<%= render 'default_view' %>
end
或在控制器中,您可以使用所需视图重定向到另一个操作,而不是渲染。 我希望它会有所帮助。