Ruby on rails 我如何修改Desive,以便在Rails 4.2.4上只读取管脚
我是一名初级开发人员,使用Rails 4.2.4为客户构建了我的第一个web应用程序,设计了用于认证和PIN脚手架,用于列出客户的销售产品 一切正常,用户可以注册和登录,然后创建、读取、更新和销毁PIN 问题是,我不希望用户能够在我的index.html.erb页面上创建、更新或销毁PIN。(只有这样的视图才是客户销售产品) 如果你看附件中的图片。当您单击主页上的女士产品BTN时,它会将您带到index.html.erb,其中列出了PIN 注意:我仍然希望用户能够通过Desive注册和登录,但只更新他们的地址详细信息以便发货,而不更改PIN的内容。PIN CRUD内容只能由客户创建 我应该如何处理这个问题 我应该如何处理这个问题 你在看Ruby on rails 我如何修改Desive,以便在Rails 4.2.4上只读取管脚,ruby-on-rails,ruby,devise,Ruby On Rails,Ruby,Devise,我是一名初级开发人员,使用Rails 4.2.4为客户构建了我的第一个web应用程序,设计了用于认证和PIN脚手架,用于列出客户的销售产品 一切正常,用户可以注册和登录,然后创建、读取、更新和销毁PIN 问题是,我不希望用户能够在我的index.html.erb页面上创建、更新或销毁PIN。(只有这样的视图才是客户销售产品) 如果你看附件中的图片。当您单击主页上的女士产品BTN时,它会将您带到index.html.erb,其中列出了PIN 注意:我仍然希望用户能够通过Desive注册和登录,但只
- 身份验证是验证您是谁(登录)的过程
- 授权是验证您是否有权访问某些内容(权限)的过程
CanCanCan
或Pundit
评估用户是否具有CRUD aPin的凭据:
#Gemfile
gem "cancancan"
#app/models/ability.rb
class Ability
include CanCan::Ability
def initialize(user) #-> looks for "current_user" from devise
user ||= User.new # guest user (not logged in)
if user.customer?
can :manage, Pin
else
cannot :manage, Pin
end
end
end
#app/controllers/pins_controller.rb
class PinsController < ApplicationController
load_and_authorize_resource
end
#文件
宝石“坎坎坎”
#app/models/ability.rb
班级能力
包括CanCan::能力
def initialize(user)#->从设备中查找“当前用户”
user | |=user.new#来宾用户(未登录)
如果是user.customer?
can:管理,Pin
其他的
无法:管理,Pin
结束
结束
结束
#app/controllers/pins_controller.rb
类PinsController<应用程序控制器
加载和授权资源
结束
以上仅允许设置为客户的用户管理Pin
。由于您对型号/控制器代码知之甚少,以上是我能提供的最具体的信息。仅确认Pin
是您的型号名称吗?您似乎有不同类型的用户,如客户和其他用户?我说得对吗?。。但是什么是pin?@RichPeck我有两个模型-user.rb和pin.rb。请在这里查看我的模型,其中包含活跃的用户关联-非常清晰的定义,先生+1汉克斯奥雅纳,意义重大!本质上,我已经过度开发了登录,以至于登录的用户可以创建、更新和销毁以jQuery方式列出的PIN。(但我不能拥有LOL,因为这是客户在PIN上列出的产品)。我希望用户能够登录,但无权登录,只能查看内容。如果是这样,我需要为客户建立一个管理员来列出他的产品,并减少用户在他们的Rich上签名时可用的功能,真的很感谢您的时间。我在上面的模型上加了一个链接。你没有过度开发,一切都很好。我只是说你想要实现的功能叫做授权。它在你目前正在做的事情之上