标签: devise

Rails 3.0.9 + Devise + Cucumber + Capybara臭名昭着的"没有路线匹配/用户/ sign_out"

我正在使用带有rails 3.0.9,cucumber-rails 1.0.2,capybara 1.0.0的设计1.4.2.我有No route matches "/users/sign_out"错误,当我点击注销.:method => :delete经过这样的问题(no-route-matches-users-sign-out-devise-rails-3)后,我添加了link_to标签.

由于我用jquery替换了原型,我也不得不改变

config.action_view.javascript_expansions[:defaults] = %w(jquery rails)
Run Code Online (Sandbox Code Playgroud)

config.action_view.javascript_expansions[:defaults] = %w(jquery jquery_ujs)
Run Code Online (Sandbox Code Playgroud)

绕过rails.js找不到错误.

虽然有了上述更改,但我能够成功注销并重定向到root,当我在FireBug中查看localhost:3000/users/sign_out请求的响应时,它会显示相同的路由错误消息单击此处以查看带有注释的屏幕截图

通过设计成功实现对rails 3 app的身份验证后,当我按照本教程(github.com/RailsApps/rails3-devise-rspec-cucumber/wiki/Tutorial)使用Cucumber + Capybara + RSpec添加功能和规格时,出现以下错误

When I sign in as "user@test.com/please"                              # features/step_definitions/user_steps.rb:41
Then I should be signed in                                            # features/step_definitions/user_steps.rb:49
And I sign out                                                        # features/step_definitions/user_steps.rb:53
  No route matches "/users/sign_out" (ActionController::RoutingError)
  <internal:prelude>:10:in `synchronize'
  ./features/step_definitions/user_steps.rb:55:in `/^I sign out$/'
  features/users/sign_out.feature:10:in `And I sign out'
And I should see "Signed …
Run Code Online (Sandbox Code Playgroud)

rspec cucumber devise capybara ruby-on-rails-3

26
推荐指数
4
解决办法
7846
查看次数

Rails 3获取请求引用者

我正在使用Rails 3.0.9,Ruby 1.9.2,Devise 1.3.4并且需要在Devise会话中使用新视图来访问请求url参数,尽管我将此视为一般的Rails请求处理问题.实质上,向Devise认证资源发出请求,该资源将用户重定向到登录屏幕.在登录视图中,我需要访问请求URL,例如,这是在开头调用的请求URL

http://mysite.com/article/5?type=blah
Run Code Online (Sandbox Code Playgroud)

在重定向登录页面中,我需要访问该URL,任何人都知道我该怎么做?

ruby-on-rails devise ruby-on-rails-3

26
推荐指数
1
解决办法
2万
查看次数

在哪里覆盖devise gem的current_user helper方法

我如何可以覆盖CURRENT_USER色器件宝石. 实际上我需要为移动应用添加网络服务.

目前设计是管理会话和网络应用程序的'current_user'.

现在,移动应用程序会将user_id发送到服务器.我需要像这样覆盖当前用户

def current_user
  if params[:user_id].blank?
    current_user
  else
    User.find(params[:user_id])
  end   
end
Run Code Online (Sandbox Code Playgroud)

我是否需要修改devise gem作为插件?或者是其他东西 ?
请详细解释,因为我是rails的新手.

亲切的问候,

authentication rubygems devise ruby-on-rails-3 ruby-on-rails-3.1

26
推荐指数
2
解决办法
2万
查看次数

在Ruby on Rails中使用Devise为用户提供服务

在我的开发和测试环境中,我想用一堆用户为数据库播种.我正在使用Ruby on Rails v3.2.8和最新的Devise.所以我在db/seeds.rb文件中添加了这一行:

User.create(email: 'test@example.com', encrypted_password: '#$taawktljasktlw4aaglj')
Run Code Online (Sandbox Code Playgroud)

但是,当我运行时rake db:setup,我收到以下错误:

耙子流产了!无法批量分配受保护的属性:encrypted_pa​​ssword

种子用户的正确方法是什么?

ruby-on-rails seed devise ruby-on-rails-3 ruby-on-rails-3.2

26
推荐指数
5
解决办法
3万
查看次数

如何为两个设计模型使用不同的authentication_keys?

现在我有一个设计模型,它使用email作为authentication_key.

我想添加一个新的设计模型,它使用student_id作为authentication_key.

一些指南告诉我修改配置

"config.authentication_keys = [:email]"通过将:email替换为:student_id.

修改后,第一个模型登录总是失败,所以我想我必须分别为两个模型指出不同的authentication_keys.

我应该怎么做?

authentication models devise ruby-on-rails-3

25
推荐指数
1
解决办法
6259
查看次数

设计Omniauth和Iphone/Android应用程序

我已经使用Devise和Omniauth为我的rails应用程序设置了用户身份验证.现在我想知道我应该在哪里开始为我想要创建的Android和iPhone应用程序使用相同的auth.

我应该使用我的/ auth/facebook的移动版本,还是应该直接从应用程序发送请求?

这是一个相当普遍的问题,但我发现无处可寻.

编辑:我刚刚向应用程序添加了Token Auth以与RESTful api一起使用,我只是错过了Omniauth/Facebook-token部分.

iphone android ruby-on-rails devise omniauth

25
推荐指数
1
解决办法
8703
查看次数

用Devise登录后重定向

在使用Devise登录后,是否可以将用户重定向到不同的页面(基于角色)?它似乎只重定向到routes.rb中定义的root:to => ...页面

谢谢!

ruby-on-rails devise

25
推荐指数
4
解决办法
3万
查看次数

如果用户未使用Devise进行身份验证,则重定向到登录页面

我正在使用Devise和Ruby on Rails.

如果未经身份验证的用户尝试访问需要身份验证的页面,建议将其重定向到会话#new页面?

现在我得到一个错误,说明没有路由匹配他们尝试访问的路由(导致生产中出现404错误).

ruby-on-rails devise warden ruby-on-rails-4

25
推荐指数
2
解决办法
3万
查看次数

Rails 5 ActionController :: InvalidAuthenticityToken错误

我有一个rails应用程序,我打算升级到rails 5.我正在使用devise(v4.2.0)和rails(v5.0.0).正如设计README.md文件中所建议的那样,我尝试将prevent_from_forgery移到before_filter之上但仍然在我尝试登录或更新我的错误时出现错误ActionController::InvalidAuthenticityToken

我的Application Controller

class ApplicationController < ActionController::Base
 protect_from_forgery with: :exception, prepend: true
 before_action :configure_permitted_parameters, if: :devise_controller?

  protected

   def configure_permitted_parameters
     devise_parameter_sanitizer.permit(:sign_up, keys: [:name])
     devise_parameter_sanitizer.permit(:account_update, keys: [:name])
   end

end
Run Code Online (Sandbox Code Playgroud)

我的另一个BugController

class BugsController < ApplicationController
  protect_from_forgery prepend: true, with: :exception
  before_action :authenticate_user!
  before_action :set_bug, only: [:show, :edit, :update]

    def update
      respond_to do |format|
      if @bug.update(bug_params)
        format.html { redirect_to @bug, notice: 'Bug was successfully updated.' }
        format.json { render :show, status: :ok, location: @bug }
     else
        format.html { …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails devise ruby-on-rails-5

25
推荐指数
3
解决办法
5万
查看次数

Omniauth-twitter与Rails 5停止工作!OAuth ::未经授权403禁止使用

一切都很好,Omniauth突然停止了工作.我没有进行任何代码更改.

我检查了Twitter应用程序设置:我有回调网址到我的主要生产网址,并且回拨网址已锁定为否.所有密钥都是正确的.

任何的想法?


的OAuth ::未经授权

403禁止

在此输入图像描述

ruby-on-rails devise omniauth ruby-on-rails-5 omniauth-twitter

25
推荐指数
2
解决办法
2412
查看次数