草庐IT

ruby-on-rails - Devise中的resource是什么意思?

我想改变用户登录时在设计中发生的事情。当我查看源代码时,资源这个词无处不在,但我不明白它代表什么。它只适用于设计和监管吗?defafter_sign_in_path_for(resource)stored_location_for(resource)||ifresource.is_a?(User)&&resource.can_publish?publisher_urlelsesuperendend 最佳答案 资源是用户实例的抽象名称。它可以在设计设置中进行配置,以与Admin模型或任何其他模型一起使用。默认情况下,它是在您的路由中声

ruby-on-rails - rails : devise , cancan, rolify 由用户获取角色名称

我可以通过以下方式轻松测试用户是否具有特定角色ifuser.has_role?:admin如何获取用户的角色名称?有点像users=User.alluser.each{|user|putsuser.roleorusers.role_name?}用户模型classUser榜样classRole:users_rolesbelongs_to:resource,:polymorphic=>trueattr_accessible:name,:idscopifyend 最佳答案 你可以使用user.roles.first.name

ruby-on-rails - 使用 Devise 注销时真实性 token 无效

我的用户可以登录myapp.com,它将把他们重定向到他们的子域,例如用户名.myapp.com这行得通是因为我有Downhill::Application.config.session_store:cookie_store,:key=>'_domain_session',:domain=>:all在session_store.rb中&我的应用程序Controller中的一个方法根据用户名检查子域(这样你就不能登录到其他用户的子域)。出于测试目的,username.myapp.com和myapp.com都显示用户登录后的数据。问题:当用户从username.myapp.com注销时,他

ruby-on-rails - 创建用户时如何阻止 Devise 发送邮件?

我有一个创建用户的自定义Controller,如下所示:User.create!:blah=>"whatever"我的问题是它会生成一封电子邮件,就像有人订阅时一样,我需要生成一封包含更多信息的自定义电子邮件。有没有办法让Devise不生成该电子邮件? 最佳答案 您也可以使用new代替create,并在save之前调用skip_confirmation:user=User.new:blah=>"whatever"user.skip_confirmation!user.saveskip_confirmation方法设置confirme

ruby-on-rails - 使用 Rails 4 和 Devise 发送电子邮件时出错(连接被拒绝,端口 25)

我在发送电子邮件时遇到了一些大问题。我尝试过多种做事方式;使用gmail、mailgun、sendgrid、mailgungem等,一点运气都没有。出于某种原因,它尝试使用端口25发送,但如下所示,我指定了端口587。我得到的错误是:Errno::ECONNREFUSED(连接被拒绝-connect(2)for"localhost"port25):我的development.rb文件如下:config.action_mailer.default_url_options={:host=>'localhost:3000'}config.action_mailer.delivery_meth

ruby-on-rails - 如何将 trackable 添加到现有的 Devise 设置中?

我正在尝试使用Devisegem在RoR应用程序中获取上次登录日期时间。在我的一个迁移文件中,我注意到#t.datetime:last_sign_in_at字段等:##Trackable#t.integer:sign_in_count,default:0,null:false#t.datetime:current_sign_in_at#t.datetime:last_sign_in_at#t.string:current_sign_in_ip#t.string:last_sign_in_ip所以问题是:如何为我的用户激活此字段以便稍后在我的应用程序中调用它?我应该取消注释吗?

ruby - Devise、Omniauth 和 Twitter

我正在开发一个使用devise和omniauth并遵循https://github.com/plataformatec/devise/wiki/OmniAuth%3A-Overview中给出的示例的Rails3应用程序它适用于Facebook帐户,但当我尝试添加Twitter身份验证时,我收到“401未经授权”的响应。为了追踪问题,我将api.twitter.com的URL切换为http并转储了网络流量,它看起来像是两次POST到/oauth/access_token。我第一次收到200响应,第二次收到401。在这两者之间,它使用“GET/1/account/verify_creden

ruby-on-rails - rails : How to restrict signup to admin using Devise

我正在尝试将注册限制为Devise管理员。如果可能的话,我想暂时避免使用CanCan。我创建了一个单独的DeviseAdmin模型,如此处选项#1中所述:https://github.com/plataformatec/devise/wiki/How-To:-Add-an-Admin-Role.接下来,我为用户设置了一个CRUD界面,如下所述:https://github.com/plataformatec/devise/wiki/How-To:-Manage-users-through-a-CRUD-interface.我想通过在用户Controller中使用类似before_fil

ruby-on-rails - 将默认角色添加到 Devise 用户模型

在尝试向我的项目添加基于角色的身份验证(使用CanCan和Devise)时,我发现有两种保存角色的方法:第一种是“HasandBelongs_to”方式,第二种只是将角色保存在用户表中的新字段。所以,问题是,我如何以第一种方式定义默认用户角色,以及我应该选择哪种方式来定义第二种方式中的默认角色(在迁移中设置默认角色或编辑Devise的用户Controller?)另外,我应该使用这种方法还是使用gem更好?附言我已经阅读了TonyAmoyal的教程,但没有在那里找到答案。 最佳答案 如果我正确理解了这个问题,那么这对我有用:Rubyo

ruby-on-rails - Rails 4 + Devise - 更新用户帐户时不允许的参数

我有以下设置:routes.rbdevise_for:users,:path_names=>{:controllers=>{:omniauth_callbacks=>"omniauth_callbacks",:registrations=>"registrations"}和RegistrationController:classRegistrationsController但每次我尝试更新用户数据时,我都会收到此错误消息:Unpermittedparameters:tw_account,fb_account但是当我用这两个字段创建一个新帐户时,它们就被保存了。如何使它们可更新?谢谢