不同用户角色的不同视图集

发布于 2024-09-08 04:12:12 字数 535 浏览 6 评论 0原文

我正在开发一个 Rails 应用程序,并且我有2 个不同的用户角色:高级和基本。

我不想在基本用户视图中隐藏链接(ai 使用 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

但我不喜欢在每个操作中指定基本用户的模板( { render :template => "devices/index_basc.html.erb" } ) 我认为还有其他方法(我希望更简洁:)

你有什么想法吗?

谢谢你, 亚历山德罗

I am developing a rails app and I have 2 different user's role: advanced and basic.

Instead of to hide links in the basic user's views (a.i. using CanCan ) I want to manage 2 different set of views: one for the advanced user and one for basic user.

Currently I am working in this way:

 case current_operator.op_type
      when 'basic'
        format.html { render :template => "devices/index_basc.html.erb" }
      when 'advanced'
        format.html # index.html.erb
 end

But I dont like to specify at every action the template for the basic user ( { render :template => "devices/index_basc.html.erb" } )
I think there is some other way (I hope more neat :)

Do you have any ideas ?

Thank you,
Alessandro

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

晒暮凉 2024-09-15 04:12:13

您可以执行类似的操作 Railscast 移动设备

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

You can do something like in this Railscast Mobile Devices:

in config/initializers/mime_types.rb add:

Mime::Type.register_alias "text/html", :basic 

in app/controllers/application_controller.rb add:

before_filter :check_user_status
private
def check_user_status
  request.format = :basic if current_operator.op_type == 'basic'
end

Now you can just do the following in your controllers:

class SomeController < ApplicationController
  def index
    # …
    respond_to do |format|
      format.html  # index.html.erb
      format.basic # index.basic.erb
    end
  end
end
撩动你心 2024-09-15 04:12:13

由于您只有两个不同的用户角色,因此您可以执行此操作

page = (current_operator.op_type =='basic')?  "devices/index_basc.html.erb"  : "index.html.erb"
format.html { render :template => page}

As you have only two different user's role you can do this

page = (current_operator.op_type =='basic')?  "devices/index_basc.html.erb"  : "index.html.erb"
format.html { render :template => page}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文