javascript

java

python

c#

node.js

reactjs

android

c++

php

html

jquery

ruby-on-rails

css

git

ios

.net

sql

c

string

<img src="//i.stack.imgur.com/bk9VA.png" alt="" class="sponsor-tag-img" width="18" height="16"/>android

ruby - 从Rails cons重置密码

在运行应用程序时,如何通过电子邮件地址选择用户,然后在rails console中为Devise手动设置密码?

另外,在使用Devise时,我将在哪里查看文档以涵盖有关操作帐户的更多详细信息?

trans by 2019-09-15T22:25:08Z

Rails 5,Undefined method`for'for#<Devise on line devise_parameter_sanitizer。

我正在使用Rails 5

我在模型用户中添加了新的字段用户名。

class Users::RegistrationsController < Devise::RegistrationsController
  before_action :configure_permitted_parameters

  protected

  def configure_permitted_parameters
    devise_parameter_sanitizer.for(:sign_up).push(:username)  
  end
end

在注册期间显示错误:未定义的方法`for'for#您的意思是? 叉子

跟踪:

NoMethodError(未定义的方法`for for for#你的意思是? 叉子):

app/controllers/users/registrations_controller.rb:7:in `configure_permitted_parameters'
  Rendering /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-5.0.0.rc1/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb within rescues/layout
  Rendering /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-5.0.0.rc1/lib/action_dispatch/middleware/templates/rescues/_source.html.erb
  Rendered /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-5.0.0.rc1/lib/action_dispatch/middleware/templates/rescues/_source.html.erb (5.0ms)
  Rendering /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-5.0.0.rc1/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb
  Rendered /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-5.0.0.rc1/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (2.9ms)
  Rendering /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-5.0.0.rc1/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb
  Rendered /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-5.0.0.rc1/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (1.2ms)
  Rendered /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-5.0.0.rc1/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb within rescues/layout (118.1ms)

谁可以帮忙? 怎么解决这个问题?

trans by 2019-09-11T11:04:37Z

ruby on rails - 如何在Devis中验证用户的密码

我在使用rails中的devise gem时遇到了匹配用户密码的问题。 存储在我的数据库上的用户密码是encrypted_password,我试图通过密码查找用户,但我不知道如何匹配我的数据库中的表单和encrypted_password的密码。

User.find_by_email_and_password(params[:user][:email], params[:user][:password])
trans by 2019-08-10T07:14:31Z

ruby on rails - 设计 - 我如何禁止某些用户登录?

我在我的应用程序中使用Devise进行身份验证。

我如何禁止某些用户登录 - 禁用某个用户?

trans by 2019-08-06T23:55:37Z

ruby on rails - Devise Secret Key不是

我正在使用Active Admin gem为管理后端开发Rails 4应用程序。 Active Admin反过来使用Devise进行用户身份验证。 现在,当我尝试在VPS服务器上使用capistrano部署应用程序时,出现以下错误:

rake aborted!
Devise.secret_key was not set. Please add the following to your Devise initializer:
config.secret_key = '-- secret key --'

Google搜索对此错误没有太大作用。 有什么建议为什么它会抛出错误? 我应该将密钥添加到devise初始化程序,因为我在initializers/devise.rb中找不到任何设置此类配置密钥的地方?

trans by 2019-08-06T12:00:42Z

ruby on rails - 仅禁用生产环境的Devise注册

我正在推出一个包含精选用户组的测试版网站。 我想仅在生产环境中禁用注册,并且只在很短的时间内禁用(即我不想完全注册我的注册)。 我知道我可以简单地隐藏“注册”链接,但我怀疑黑客比我更聪明,仍然可以使用RESTful路由来完成注册。 禁用注册的最佳方法是什么,以便我的测试/开发环境仍然有效,但生产受到影响? 谢谢你的任何指示。

我已经尝试以“sign_up”转到“sign_in”的方式指向命名范围,但它不起作用。 这是我尝试过的:

devise_scope :user do
    get "users/sign_in", :to => "devise/sessions#new", :as => :sign_in
    get "users/sign_up", :to => "devise/sessions#new", :as => :sign_up
end

理想情况下,我们会将用户发送到“pages#registration_disabled”页面或类似的内容。 我只是想得到一些我可以玩的东西。

编辑:我已按要求更改了模型,然后将以下内容添加到/spec/user_spec.rb中

describe "validations" do
    it "should fail registration if in production mode" do
      ENV['RAILS_ENV'] = "production"
      @user = Factory(:user).should_not be_valid
    end
end

它传递的是“真实的”而不是虚假的。 有没有办法模拟生产环境? 我只是在吐这个。

谢谢!

trans by 2019-06-20T11:05:56Z

ruby on rails - 设置Devise Login为root pag

我为我的路线使用以下代码:

devise_for :user, 
  :as => '', 
  :path_names => { 
    :sign_in => "", 
    :sign_out => "logout", 
    :sign_up => "register" 
  }

但是当我退出并且我转到:sign_in时,我收到以下错误:

没有路线匹配{:action =&gt;“new”,  :控制器=&gt; “中色器件/会话”}

如何设置根路径为:sign_in动作?

trans by 2019-06-16T22:53:37Z

ruby on rails - 设计没有密码的更新用户

我想在没有密码的情况下更新用户属性。 情况就像,如果密码和密码确认字段不是空白,那么我需要设计错误,如果它们是空白,则需要更新其他用户属性。 我怎么能用设计做到这一点?

提前致谢!

trans by 2019-06-15T05:49:40Z

所有Ruby测试都提出了:nil的未定义方法`authenticate':NilClass

我的大多数测试都提出了以下内容,我不明白为什么。 所有方法调用都会引发“authenticate”错误。 我检查了代码是否有一个名为“authenticate”的方法,但没有这样的方法。

  1) Admin::CommentsController handling GET to index is successful
     Failure/Error: get :index
     undefined method `authenticate!' for nil:NilClass
     # ./spec/controllers/admin/comments_controller_spec.rb:9:in `block (3 levels) in <top (required)>'


  124) PostsController handling GET for a single post should render show template
     Failure/Error: get :show, :year => '2008', :month => '01', :day => '01', :slug => 'a-post'
     undefined method `authenticate' for nil:NilClass
     # ./app/controllers/application_controller.rb:18:in `set_current_user_for_model'
     # ./spec/controllers/posts_controller_spec.rb:131:in `do_get'
     # ./spec/controllers/posts_controller_spec.rb:140:in `block (3 levels) in <top (required)>'

该项目可以在那里找到=&gt; [https://github.com/agilepandas/enki]如果您想自己运行测试。

trans by 2019-06-07T22:00:24Z

ruby on rails - 设计的token_authenticatable安全吗?

我正在使用Rails API构建一个简单的api,并希望确保我在这里正确的轨道。 我正在使用设计来处理登录,并决定使用Devise的token_authenticatable选项,该选项生成一个API密钥,您需要随每个请求一起发送。

我将API与骨干/牵线木偶前端配对,我一般想知道如何处理会话。 我的第一个想法是将api密钥存储在本地存储或cookie中,并在页面加载时检索它,但是从安全的角度来看存储api密钥的方式让我感到困扰。 通过查看本地存储/ cookie或嗅探任何经过的请求来获取api密钥并不容易,并使用它来无限期地冒充该用户? 我目前正在每次登录时重置api密钥,但即使这样也很频繁 - 任何时候你登录任何设备,这意味着你会被其他人登录,这是一种痛苦。 如果我可以放弃这种重置,我觉得从可用性的角度来看它会有所改善。

我可能在这里完全错了(并且希望我是),任何人都可以解释这种方式的认证是否可靠安全,如果不是,那么一个好的替代方案是什么? 总的来说,我正在寻找一种方法,我可以安全地保持用户'登录'到API访问,而不经常强制重新认证。

trans by 2019-06-04T23:28:48Z

ruby on rails - 设计和多个“用户”模型

我正在使用rails 3.2和设计2.0,我对Rails很新。

要求

我想实现以下目标:

  • 具有2个或更多“用户”模型,例如。 会员,客户,管理员
  • 所有型号共享一些必填字段(例如电子邮件和密码)
  • 每个模型可能有一些独特的领域(例如,仅限客户的公司)
  • 某些字段可能是共享的但没有相同的验证(例如,客户需要名称,但会员可选)
  • 注册过程中必须填写所有字段,因此表单不同
  • 登录表单应该是唯一的

可能的解决方案

我用Google搜索并搜索了StackOverflow很长一段时间,但对我来说似乎没什么问题(我是一个Java人,对不起:)现在我很困惑。 出现了两个解决方案:

单一设计用户

这是最常见的答案。 只需创建默认设备用户并在会员 - &gt;用户和客户 - &gt;用户之间创建关系。我关注的是如何为每个模型实现自定义注册流程? 我尝试了不同的东西,但一切都结束了!

多个设计用户

这解决了自定义注册过程,对我来说似乎是正确的,但唯一的登录表单是一个阻止程序。 我在SO(Devise - 从两个模型登录)上找到了答案,建议覆盖Devise :: Models :: Authenticatable.find_for_authentication(条件)。这似乎很复杂(?),因为我是铁杆新手,我想知道这是否有效?

谢谢你的建议!

trans by 2019-05-29T09:57:22Z

ruby on rails 3 - 如何删除设计路线?

我在Rails 3应用程序中使用Devise,但在这种情况下,用户必须由现有用户创建,该用户确定他/她将拥有哪些权限。

因此,我想要:

  • 删除用户注册的路由。
  • 仍允许用户在注册后编辑其个人资料(更改电子邮件地址和密码)

我怎样才能做到这一点?

目前,我通过在devise/registrations之前放置以下内容来有效地删除此路由:

match 'users/sign_up' => redirect('/404.html')

这有效,但我想有更好的方法,对吧?

更新

正如Benoit Garret所说,在我的情况下,最好的解决方案是跳过创建注册路线,并创建我真正想要的那些。

为此,我首先运行devise/registrations,然后使用输出重新创建我想要的。 最终结果如下:

devise_for :users, :skip => [:registrations] 
as :user do
  get 'users/edit' => 'devise/registrations#edit', :as => 'edit_user_registration'
  put 'users' => 'devise/registrations#update', :as => 'user_registration'
end

注意:

  • 我的User模型中仍然有devise/registrations
  • devise/registrations处理更新电子邮件和密码
  • 更新其他用户属性 - 权限等 - 由不同的控制器处理

实际答案:

删除默认Devise路径的路由;即:

devise_for :users, path_names: {
  sign_up: ''
}
trans by 2019-05-16T06:18:37Z

ruby - 从Rails cons重置密码

在运行应用程序时,如何通过电子邮件地址选择用户,然后在rails console中为Devise手动设置密码?

另外,在使用Devise时,我将在哪里查看文档以涵盖有关操作帐户的更多详细信息?

trans by 2019-04-21T11:39:09Z

ruby on rails - Heroku / devise - 缺少主机链接到! 请提供:host参数或设置default_url_options [:host]

我想在heroku上推送我的应用程序。 我还在开发中。我使用了可确认模块的设计。

当我尝试使用heroku控制台添加用户时出现此错误:

Missing host to link to! Please provide :host parameter or set default_url_options[:host]

在测试和开发环境中,我有以下行:

environment / development.rb和environments / test.rb

config.action_mailer.default_url_options = { :host => 'localhost:3000' }

我没有在生产环境中设置一些东西。

我试过推

config.action_mailer.default_url_options = { :host => 'mywebsitename.com' }
config.action_mailer.default_url_options = { :host => 'heroku.mywebsitename.com' }

但它也不起作用..

我在网上看到它可能与ActionMailer有关,但我不知道我要配置什么。非常感谢你的想法!

编辑:

嗨,

为了在我推动heroku时不让我的应用程序崩溃,我把它放在我的env / test.rb和我的env / dev.rb(不在env.rb中,我认为这是因为它是rails 3应用程序)

config.action_mailer.default_url_options = { :host => 'yourapp.heroku.com' }

但是当我尝试在heroku控制台中创建用户时:

User.create(:username => "test", :email => "test@test.com", :password => "test1234", :password_confirmation => "test1234", :confirmed_at => "2010-11-03 14:11:15.520128")

这是我得到的错误:

ActionView::Template::Error: Missing host to link to! Please provide :host parameter or set default_url_options[:host]
/home/slugs/.../mnt/.bundle/gems/ruby/1.8/gems/actionpack-3.0.0/lib/action_dispatch/routing/route_set.rb:473:in `url_for'
/home/slugs/.../mnt/.bundle/gems/ruby/1.8/gems/actionpack-3.0.0/lib/action_dispatch/routing/url_for.rb:132:in `url_for'
/home/slugs/.../mnt/.bundle/gems/ruby/1.8/gems/actionpack-3.0.0/lib/action_view/helpers/url_helper.rb:99:in `url_for'
/home/slugs/.../mnt/.bundle/gems/ruby/1.8/gems/actionpack-3.0.0/lib/action_dispatch/routing/route_set.rb:195:in `user_confirmation_url'

编辑(2)

当我在控制台上键入heroku日志时,我得到了这个==&gt; production.log&lt; ==所以我想当一个人在heroku上部署它已经在生产中了。

我像这样配置env / prod.rb:

config.action_mailer.default_url_options = { :host => 'yourapp.heroku.com' }

现在,当我尝试创建用户时,我将此作为错误:

Errno::EAFNOSUPPORT: Address family not supported by protocol - socket(2)
/usr/ruby1.8.7/lib/ruby/1.8/net/smtp.rb:551:in `initialize'
/usr/ruby1.8.7/lib/ruby/1.8/net/smtp.rb:551:in `open'
/usr/ruby1.8.7/lib/ruby/1.8/net/smtp.rb:551:in `do_start'
/usr/ruby1.8.7/lib/ruby/1.8/timeout.rb:62:in `timeout'
trans by 2019-04-09T03:41:11Z

ruby on rails - 使用devise valid_password的奇怪问题?

在过去的两个小时里,我一直在尝试调试设计中的一个奇怪的问题,这不是让我登录。

这也是我所指的东西:

password 
=> 'vinodsobale'

password == 'vinodsobale'
=> true

resource.valid_password?(password)

=> false

resource.valid_password?('vinodsobale')

=> true

附上截图:

enter image description here注意:我在设计中启用了调试器,因此上面的代码是设计内部代码。

对我来说,这似乎是Devise.secure_compare中的一个问题。

trans by 2019-04-05T07:53:10Z

ruby on rails - 覆盖设计注册con

我在注册表单中添加了一个基于不同模型的字段,请参阅如何将嵌套属性与设计模型一起用于血淋淋的细节。 这部分工作正常。

现在的问题是当我保存时,它在注册控制器的创建操作中失败,该控制器由该字段(公司)上的Activerecord::UnknownAttributeError设计。

我假设我需要覆盖注册控制器,还是有更好/更简单的方法我应该接近这个?

trans by 2019-03-09T22:32:25Z

没有路由匹配“/ users / sign_out”设计rails 3

我在我的应用程序上安装了devise并在我的routes.rb文件中应用了以下内容:

<div id="user_nav">
    <% if user_signed_in? %>
        Signed in as <%= current_user.email %>. This cannot be cheese?
        <%= link_to 'Sign out', destroy_user_session_path %>
    <% else %>
        <%= link_to 'Register', new_user_registration_path %> or <%= link_to 'Sign in', new_user_session_path %>
    <% end %>
</div>

我跑了routes.rb并确认所有路线都有效。

此外,在我的routes.rb文件中,我有devise_for :usersroot :to => "home#index"

单击“注销”链接时出现以下路由错误:

No route matches "/users/sign_out"

是什么导致错误?

trans by 2019-01-03T20:46:23Z

1 共1页