Tag: 设计

设计Rspec注册控制器测试失败,就好像它正在尝试确认电子邮件地址一样

我有以下路线: devise_for :users, :controllers => { :omniauth_callbacks => “users/omniauth_callbacks”, :registrations => ‘users/registrations’, :sessions => “users/sessions” } 和以下控制器测试(registrations_controller_spec.rb): require File.dirname(__FILE__) + ‘/../spec_helper’ describe Users::RegistrationsController do include Devise::TestHelpers fixtures :all render_views before(:each) do @request.env[“devise.mapping”] = Devise.mappings[:user] end describe “POST ‘create'” do describe “success” do before(:each) do @attr = { :email => “user@example.com”, :password => “foobar01”, :password_confirmation => […]

如何使用rspec测试mandrill api

所以我的客户报告说很多电子邮件都是错误的人,我想编写一些function测试来查找并确保他们收到的电子邮件及其在我的规范中说的内容。 我有mandrill_mailer使用mandril api,在它发出之前我想知道消息是什么。 例如。 创建一个新用户帐户 – >创建用户,然后发送一封欢迎电子邮件。 在设计中,它调用RegistrationMailer.new_registration(resource).deliver,然后发送电子邮件给用户: def new_registration(user) user = User.find_by_email(user[“email”]) mandrill_mail template: ‘new-registration’, subject: ‘Welcome to ContentBlvd!’, to: { email: user[“email”], name: user[“full_name”] }, vars: { ‘first_name’ => user[“full_name”], ‘unsubscribe’ => “#{CONFIG[:protocol]}#{CONFIG[:host]}/unsubscribe?email=#{user.email}” } 结束 在我的邮件程序中,如何测试此邮件对象? 我尝试了ActionMailer :: Base.deliveries,但它返回nil(因为我使用的是mandrill邮件程序…)所以我试过 – MandrillMailer :: TemplateMailer.message但是没有运气….感谢您的帮助。

“缺少主机链接到!”为Devise

我安装了Devise,每当我尝试创建一个帐户时,事情就会停止。 完整错误如下: Missing host to link to! Please provide :host parameter or set default_url_options[:host] 我在develop.rb块中有以下代码。 我已经尝试过,有没有添加smtp配置。 config.action_mailer.default_url_options = { :host => ‘localhost’ } config.action_mailer.delivery_method = :smtp … 我是否错误地定义了host ?

即使在设计了token_authenticatable之后,设计中的令牌认证也无法正常工作

我已经设计了身份validation,以下是我所做的步骤和令牌身份validation无法正常工作 添加devise到gem文件 rails generate devise:install rails生成设备用户 rake db:migrate rails生成设计:视图 rails生成控制器主页索引 并且直到这没有问题然后我添加了devise:token_authenticatable到用户模型然后我添加了before_save :ensure_authentication_token然后 rails生成迁移AddTokenAuthenticatableToUser authentication_token:string 然后将attr_accessible:authentication_token添加到用户模型 但 curl -H ‘Content-Type: application/json’ -H ‘Accept: application/json’ -X POST http://localhost:3000/users/sign_in -d “{‘user’ : { ’email’ : ‘sample@gmail.com’, ‘password’ : ‘xxxxxxxx’}}” 不管用。 它在终端显示错误。 请告诉我如何获取用户的令牌并在后续请求中使用它? 更新: 它在从Web应用程序创建新用户时将身份validation令牌保存在用户表中,但无法从终端注册新用户或获取用户使用令牌进行身份validation的令牌。

uninitialized constant devise :: controllers :: internalhelpers

我是rails的新手,目前正在使用devise gem进行身份validation。 我想从我的移动应用程序与我的服务器通信。 所以我通过JSON发送数据。 当我尝试登录时,它显示以下错误: ActionController::RoutingError (uninitialized constant Devise::Controllers::InternalHelpers): app/controllers/session_controller.rb:4:in `’ app/controllers/session_controller.rb:1:in `’ 当我使用设计gem版1.4.6时,它对我来说很好。 但是,我想使用设备版本2.1.0或更高版本,以便能够使用它支持的任何新function。 如果有人有这个运行或有任何想法,请帮助我。 提前致谢。 问候, 塞特希。

如何在过滤之前添加身份validation到rails 3应用程序,并设计用户注册并登录?

鉴于我使用的是Rails 3.1,Ruby 1.9.2,其标准设置用于通过名称和密码登录用户(例如类似于https://github.com/RailsApps/rails3-devise-rspec-cucumber ): 在创建新用户(注册) 或用户登录之前 ,我需要添加一个层来对外部服务validation发布的用户名和密码。 (FWIW,我计划使用https://github.com/chicks/devise_aes_encryptable strategy / gem来加密敏感密码,并在使用本地密码登录时,解密远程服务的密码,进行validation,然后继续登录,即有两个密码,一个加密单向,另一个可逆…不要问为什么,反正) 在lib / util / authenticate.rb中,我有一个认证类,它返回一个针对该服务的布尔值,例如 Util::Authenticate.authenticate(username,password) 但是,我无法弄清楚如何在身份validation继续之前添加filter以对其进行身份validation(用于注册或登录)。 我尝试过的: 我有一个用户模型,我想放一个 before_filter :authenticate_against_my_service, :only => [:create, :new] 在UserController但但没有用 所以,我尝试打开Devise Sessions控制器,它没有工作,也没有对它进行子类化(例如在自述文件中), class User::SessionsController { :sessions => “users/sessions” } 也没有对Devise Registrations控制器进行子类化(例如http://www.tonyamoyal.com/2010/07/28/rails-authentication-with-devise-and-cancan-customizing-devise-controllers/ )并添加before_filter(与以上)。 # in app/controllers/users/registrations_controller.rb class Users::RegistrationsController [:new, :create, :cancel] skip_before_filter :require_no_authentication def check_permissions authorize! :create, resource end […]

使用rails-bootstrap-forms设计自定义问题

我正在使用rails-bootstrap-forms gem和devise。 我以前的devise/registrations/new.html.erb代码是 Sign up ( characters minimum) 生成HTML Sign up Email Password (8 characters minimum) Password confirmation Log in 但是现在我编辑了这段代码以使用gem rails-bootstrap-forms我的新代码是 Sign up ( characters minimum) HTML视图是: – Sign up Email (8 characters minimum) Password Password confirmation Log in 我的问题是如何在label:密码中包含行打印(最少x个字符)。 上面的行打印在下一行标签密码中我想用标签密码打印它 我希望HTML输出为 Password (8 characters minimum) 但它的表现 Password (8 characters minimum)

将Devise与多个名称空间用于同一个Model

我想使用具有两个名称空间的Devise:API名称空间和默认名称空间,但是当用户尝试登录时,这两个名称似乎是冲突的。意思是,引用Devise的任何名称空间最终都是最终的重定向位置。 例如:如果我尝试在默认命名空间下创建新会话,它将在该用户会话路径上失败,然后尝试在API / v1会话路径上创建会话。 如何让两者独立行动? 它们都引用了User对象。 默认命名空间的user_sessions控制器是“user_sessions”。 API / V1命名空间的user_sessions控制器是’/ api / v1 / user_sessions’ —- ROUTES.RB ——- MySite::Application.routes.draw do namespace :api do namespace :v1 do devise_for :users,:controllers => { :sessions => “api/v1/ user_sessions”,:registrations=>”users” } …… end end devise_for :users,:controllers => { :sessions =>”user_sessions”,:registrations=>”users” } do post ‘users/sign_in’ => ‘user_sessions#create’, :as => :user_session get ‘users/sign_in’ […]

如何使用Devise:记得吗?

我正在制作一个Rails应用程序。 我想实现一个“记住我”的复选框,以便用户在下次使用Devise:rememberable时跳过输入密码。但我无法弄清楚如何实现。 如果您对此有任何想法,请向我展示一些示例代码。

将facebook生日信息添加到rails / devise / omniauth中的某个模型

我有问题从facebook获取生日信息到我的应用程序。 最大的问题是误解了FB的权限页面: http : //developers.facebook.com/docs/authentication/permissions/ 这里的生日被描述为user_birthday。 但那不是你如何从响应中获取它。 我找到了一个非常简单的解决方案。