Ale*_* DS 3 web-applications ruby-on-rails cancan
我正在开发一个rails应用程序,我有两个不同的用户角色:高级和基本.
我没有隐藏基本用户视图中的链接(使用CanCan),而是想管理两组不同的视图:一组用于高级用户,另一组用于基本用户.
目前我正在以这种方式工作:
case current_operator.op_type
when 'basic'
format.html { render :template => "devices/index_basc.html.erb" }
when 'advanced'
format.html # index.html.erb
end
Run Code Online (Sandbox Code Playgroud)
但我不喜欢在每个动作中指定基本用户的模板({render:template =>"devices/index_basc.html.erb"})我认为还有其他一些方法(我希望更整洁:)
你有什么想法 ?
谢谢,亚历山德罗
您可以在此Railscast 移动设备中执行以下操作:
另外config/initializers/mime_types.rb:
Mime::Type.register_alias "text/html", :basic
Run Code Online (Sandbox Code Playgroud)
另外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
Run Code Online (Sandbox Code Playgroud)
现在您可以在控制器中执行以下操作:
class SomeController < ApplicationController
def index
# …
respond_to do |format|
format.html # index.html.erb
format.basic # index.basic.erb
end
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1251 次 |
| 最近记录: |