针对不同用户角色的不同视图集
问题描述:
我正在开发一个rails应用程序,我有2个不同的用户角色:高级和基本。针对不同用户角色的不同视图集
我想管理2个不同的视图集合:一个用于高级用户,一个用于基本用户。
目前我这样我的工作:
case current_operator.op_type
when 'basic'
format.html { render :template => "devices/index_basc.html.erb" }
when 'advanced'
format.html # index.html.erb
end
,但我不喜欢在指定的每一个动作为基本用户模板({呈现:模板=>“设备/ index_basc.html.erb” }) 我觉得还有一些其他的方法(我希望更整洁:)
你有什么想法吗?
谢谢 亚历山德罗
答
你可以做这样的事情在这个RailscastMobile Devices:
在config/initializers/mime_types.rb
添加:
Mime::Type.register_alias "text/html", :basic
在app/controllers/application_controller.rb
加:
before_filter :check_user_status
private
def check_user_status
request.format = :basic if current_operator.op_type == 'basic'
end
现在,你可以做你的控制器如下:
class SomeController < ApplicationController
def index
# …
respond_to do |format|
format.html # index.html.erb
format.basiC# index.basic.erb
end
end
end
答
当你只有两个不同的用户角色,你可以做到这一点
page = (current_operator.op_type =='basic')? "devices/index_basc.html.erb" : "index.html.erb"
format.html { render :template => page}
+2
但他仍然需要做的每一个动作。他说:“但我不想在每个操作中指定基本用户的模板({render:template =>”devices/index_basc.html.erb“})” – jigfox 2010-07-01 11:09:19
index.basic.erb?其中的文件格式为 – Salil 2010-07-01 11:10:38
'Mime :: Type.register_alias“text/html”,:basic'这是html的别名,但这种方式根据用户类型可以有两个不同的模板 – jigfox 2010-07-01 11:16:56
什么是downvote?很高兴知道我做了什么错误来纠正错误。 – jigfox 2010-07-01 11:18:11