Tag: 设计

在用户注册/使用Rails + Devise登录时执行JS代码

我正在查看Kissmetrics(分析应用程序)JS API文档,他们有一个“识别”方法,可以让您告诉Kissmetrics有关用户的信息。 以下是他们的文档所说的内容: 我们建议您在两种情况下调用身份识别: 用户成功注册时用户通过cookie或登录页面成功登录时 实现这一目标的最佳方法是什么? 如何检测用户刚刚注册或登录?

如何让第一个用户成为Devise gem的管理员?

我想让第一个用户成为管理员。 所以我有字符串属性管理员,我需要在filter或覆盖Devise注册控制器之前做一些。 就像是: if User.first? User.admin = “admin” User.save end 这是设计注册行动 def new resource = build_resource({}) respond_with resource end 有什么比这更好的方法呢?

更改Devise的sign_in url

在使用before_filter:athenticate用户时,如何更改Devise的登录路径? 我在post控制器中有以下内容。 例如: class PostsController < ApplicationController before_filter :authenticate_user! def index @posts = Post.all end end 目前它会自动转到’/ users / sign_in’ 我想使用’/ login’

Devise – Omniauth – 如果用户通过Facebook登录,则隐藏密码字段

使用Devise与Omniauth我成功地允许用户使用他们的Facebook帐户登录。 在Omniauth wiki的帮助下,我还可以禁用在编辑帐户时输入密码。 我遇到的当前问题是如果他们通过Facebook registrations#edit ,则在我的registrations#edit视图中隐藏密码字段。 作为两个gem的新手我还在努力调整。 因此,在设置必要的辅助方法时,我有点不知所措。 根据维基的指示,这是我的注册控制器的样子: class RegistrationsController true redirect_to after_update_path_for(@user) else render “edit” end end private # check if we need password to update user data # ie if password or email was changed # extend this as needed def needs_password?(user, params) user.email != params[:user][:email] || params[:user][:password].present? || params[:user][:password_confirmation].present? end protected […]

仅使用omniauth(twitter)登录与Devise,Rails 3,Omniauth

我有一个基于Railscasts 209,210,235和236的设置 – Twitter登录工作得很好; 但我想完全删除用户在我的应用程序本地创建帐户的能力。 换句话说,如果您想登录,则需要使用您的Twitter帐户。 我很快就不会打扰管理本地帐户(现在 – 可能会在某些时候将其添加回来)。 我真的找不到任何有关如何做到这一点的实用指针,并且使用Devise路线并且没有取得非常好的结果。 提前致谢!

Rspec没有在Linux中加载ControllerMacros模块(但在OS X上很好)

我在使用Devise和Rspec的Rails应用程序中编写了一些控制器测试。 按照本指南 ,我在/ spec / support /目录中创建了一个controller_macros.rb 。 在同一目录中还有一个devise.rb文件,其中包含: RSpec.configure do |config| config.include Devise::TestHelpers, type: :controller config.extend ControllerMacros, :type => :controller end spec_helper.rb文件中需要这两个文件,使用以下行: Dir[Rails.root.join(“spec/support/**/*.rb”)].each { |f| require f } 现在这里有点奇怪 :这种方法在OS X笔记本电脑上运行良好,但在我的Linux桌面上失败了。 它们都使用相同的RVM设置,相同的gemsets,相同的一切。 我在Linux中运行测试时得到的错误是: uninitialized constant ControllerMacros (NameError) 显然, controller_macros.rb模块无法在Linux中加载。 我已经看到SO答案表明config.extend可以更改为config.include ,但这并不能解决问题。 我可以看到的任何想法或我可以测试什么来帮助隔离问题? 我正在使用Rails 4.1.8和Rspec 3.1.7。

Rails引擎和设计

我有一个Rails引擎,我想在那里使用Devise。 我按照本指南正常安装了装置。 我在我的引擎devise.rb中添加了这个: Devise.setup do |config| config.router_name = :cms_user end 我在路线文件中添加了这个: Cms::User::Engine.routes.draw do devise_for :users, { class_name: ‘Cms::User’, module: :devise } end 我在我的路线中添加了这个: devise_for :users, { class_name: ‘Cms::User’, module: :devise } 但是我一直收到这个错误: undefined method ‘cms_user’ 我究竟做错了什么 ?

首次进入站点的根时设计身份validation错误

当用户输入我们网站的根目录或注销时,Devise身份validation显示“您需要首次登录或注册才能继续”。 页面重新加载后,此消息消失。 我们网站的根目录设置为控制器,它具有: before_filter :authenticate_user! 我们需要这个控制器作为根。 如何消除此消息?

将密码迁移到Devise

我是从PHP到Rails的迁移用户数据库。 我已经安装了Devise Gem,它现在运行良好。 另外,我发现了如何将现有用户的密码迁移到Rails的提示我已经将旧密码添加到与Devise保持相同的encrypted_password字段中,因此当设计无法validation时,检查旧密码: # user.rb def valid_password?(password) return false if encrypted_password.blank? require ‘digest/sha1’ password_salt = ‘my_php_framework_salt’ Devise.secure_compare(Digest::SHA1.hexdigest(password_salt+password), self.encrypted_password) end 它允许使用旧密码登录,但不适用于新用户的原始Devise密码。 我认为这个valid_password? 对于设计密码,方法应该return true 。 如何解决这个问题?

使用设计确认页面显示用户密码

我试图在Devise邮件程序发送的确认页面中显示用户密码。 确认页面是默认页面 Welcome test0@test.com! You can confirm your account email through the link below: Confirm my account 但是,我希望有 Welcome test0@test.com! Your password is currently DASADSADS You can confirm your account email through the link below: Confirm my account 如何在视图中访问用户对象? 我是否需要使用自定义控制器覆盖邮件控制器? 如果是这样,我如何判断当前邮件的方法是什么(尝试查看文档但找不到任何线索)? 我注意到在视图中使用了@email和@resource。 我可以使用其中任何一种以未散列的forms访问当前密码吗? 请注意,我使用user.find(1).send_confirmation_instructions手动发送此电子邮件