相同的命名空间,但Rails中的控制器和视图不同

时间:2012-04-20 15:48:25

标签: ruby-on-rails ruby-on-rails-3 model-view-controller rest routes

我有一个案例,我需要localhost:3000/dashboard根据用户的类型指向不同的视图/控制器组合。我的应用程序中的两个主要类型是SubscriberPublisher

Publisher登录并转到/dashboard时,我需要显示发布商信息中心。

Subscriber登录并转到/dashboard时,我需要显示订阅者信息中心。

目前,发布商的信息中心名为Dashboard,订阅者的信息中心名为Profile。对我来说有点脏。

问题是。调用正确的控制器,加载正确的数据并根据特定用户的类型呈现正确的模板/布局的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

我会考虑使用以下伪代码来帮助您入门。

控制器:

app/controllers/dashboard_controller.rb

class Dashboard < ApplicationController

def index      
  render, :user_type => current_user.user_type
end

查看:   (使用帮助器更改将显示的内容)。

views/dashboards/index.html.erb

# display the content

帮助器。

helpers/dashboard_helper.rb
module DashboardHelper(user_type)
if user_type == 'publisher'
  #set content / variables for publisher
elsif user_type == 'Subscriber'
  #set content / variables for subscriber
else
  set content/variables to default.
end