如何使用Ruby on Rails实现针对不同用户角色的个性化视图集?

更新于
2026-10-10 00:11:19
3阅读来源:SEO教程
  • 内容介绍
  • 相关推荐

本文共计360个文字,预计阅读时间需要2分钟。

如何使用Ruby on Rails实现针对不同用户角色的个性化视图集?

我正在开发一个Rails应用程序,需要区分两种用户角色:高级和基本。目前,我没有在基本用户视图中隐藏链接(使用CanCan进行权限控制),但希望管理两个不同的视图集:一个用于高级用户,一个用于基本用户。

我正在开发一个rails应用程序,我有两个不同的用户角色:高级和基本.

我没有隐藏基本用户视图中的链接(a.i.使用CanCan),而是想管理2个不同的视图集:一个用于高级用户,一个用于基本用户.

如何使用Ruby on Rails实现针对不同用户角色的个性化视图集?

目前我正在以这种方式工作:

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”})
我认为还有其他方式(我希望更整洁:)

你有什么想法 ?

谢谢,
亚历山德罗

您可以在此 Railscast Mobile 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

本文共计360个文字,预计阅读时间需要2分钟。

如何使用Ruby on Rails实现针对不同用户角色的个性化视图集?

我正在开发一个Rails应用程序,需要区分两种用户角色:高级和基本。目前,我没有在基本用户视图中隐藏链接(使用CanCan进行权限控制),但希望管理两个不同的视图集:一个用于高级用户,一个用于基本用户。

我正在开发一个rails应用程序,我有两个不同的用户角色:高级和基本.

我没有隐藏基本用户视图中的链接(a.i.使用CanCan),而是想管理2个不同的视图集:一个用于高级用户,一个用于基本用户.

如何使用Ruby on Rails实现针对不同用户角色的个性化视图集?

目前我正在以这种方式工作:

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”})
我认为还有其他方式(我希望更整洁:)

你有什么想法 ?

谢谢,
亚历山德罗

您可以在此 Railscast Mobile 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