javascript

java

python

c#

android

c++

node.js

php

html

jquery

ios

reactjs

css

.net

git

ruby-on-rails

sql

c

ruby

string

Rails和Devis的强大参数

我正在使用devise的rails 4.0分支以及ruby 2.0.0p0和Rails 4.0.0.beta1。

这是我要检查是否以正确的方式执行的问题,或者是否应该做其他事情。 我敢肯定,迁移到Rails 4.0的很多人都面临着同样的问题(在搜索类似的东西之后)。

我已阅读以下链接:

  • 设计和强大的参数
  • [https://gist.github.com/kazpsp/3350730]
  • [https://github.com/plataformatec/devise/tree/rails4#strong-parameters]

现在,使用devise创建了一个User模型,使用上述要点创建了以下控制器(并确保将其包括在我的route文件中)。 我的额外参数是first_name和last_name。

class Users::RegistrationsController < Devise::RegistrationsController
  def sign_up_params
    params.require(:user).permit(:first_name, :last_name, :email, :password, :password_confirmation)
  end
  def account_update_params
    params.require(:user).permit(:first_name, :last_name, :email, :password, :password_confirmation, :current_password)
  end
  private :sign_up_params
  private :account_update_params
end

我还有什么需要做的吗? 这是从现在开始执行操作的最佳方法(因为删除了attr_accessor)。 我的表格似乎运行良好(新的和更新的)。 要点说使用“ resource_params”,但是在我的服务器日志中总是出现“ Unpermitted parameters”错误。

trans by 2020-01-05T12:32:09Z

Rails&Devise:如何在没有布局的情况下呈现登录页面?

我知道这可能是一个简单的问题,但我仍在尝试弄清楚Devise ...

我想在登录页面上输入render :layout => false; 我该如何使用Devise?

trans by 2019-12-28T18:51:46Z

ruby on rails-登录fai后设计重定向

我发现的所有问题都与成功登录帮助程序有关。after_sign_in_path_for(resource)

我在网站的索引中有一个登录表单,当登录失败时,它将重定向到“ users / sign_in”

但是,登录失败时如何重定向到“ site#index”?

trans by 2019-12-25T13:44:08Z

ruby on rails-注册用户时未定义的局部变量或方法“ unconfirmed_email”?

我刚刚在应用程序中安装了Devise,配置了视图和所有内容。 但是,当我单击“注册”按钮时,出现此错误:

NameError in Devise::RegistrationsController#create
undefined local variable or method `unconfirmed_email' for #<User:0x00000103721b28>

为什么是这样? 另外,我正在使用tlsmail通过我的gmail企业帐户发送电子邮件。 这也可能是一个问题。

trans by 2019-11-05T08:16:36Z

ruby on rails-设计-创建具有确认的用户帐户,而不发送电子邮件?

我将设计与Facebook集成在一起。 现在,当用户使用其Facebook帐户登录后创建用户帐户时,

  user = User.create(:email => data["email"], 
                     :password => Devise.friendly_token[0,20]) 
  user.confirmed_at = DateTime.now
  user.save!

即使已确认帐户,仍会触发确认电子邮件。 您知道如何关闭电子邮件触发功能吗?

trans by 2019-10-24T09:18:02Z

ruby on rails-设计-创建具有确认的用户帐户,而不发送电子邮件?

我将设计与Facebook集成在一起。 现在,当用户使用其Facebook帐户登录后创建用户帐户时,

  user = User.create(:email => data["email"], 
                     :password => Devise.friendly_token[0,20]) 
  user.confirmed_at = DateTime.now
  user.save!

即使已确认帐户,仍会触发确认电子邮件。 您知道如何关闭电子邮件触发功能吗?

trans by 2019-10-12T00:58:38Z

红宝石-rails 4中secret_key_base的用途是什么

我是Rails 4的新手,不了解Rails 4中2556050573191191808001下secret_key的使用。您能解释一下这个概念吗?

另外,当我在生产环境中工作时,系统会提示我设置2556050573191180180、secret_key_baseconfig.secret_key和2556050573191808808。但是,我可以使用2556050573191808808命令生成一个新的机密。

开发和生产环境之间有什么区别?

每次生成时将其与2556050573191191808001添加在一起,它如何与新生成的secret_key匹配?

如何用其他服务器保护应用程序?

trans by 2019-10-05T15:43:50Z

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

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

提前致谢!

trans by 2019-09-25T10:46:14Z

Ruby on Rails-设计和多个“用户”模型

我正在使用Rails 3.2和devise 2.0,而我对Rails还是很陌生。

要求

我想要实现以下目标:

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

可能的解决方案

我搜索并搜索了StackOverflow很长时间了,但是对我来说似乎没有什么合适的(我是Java人士,很抱歉:),现在我很困惑。 提出了两种解决方案:

单一设计用户

这是最常见的答案。 只需创建默认的devise用户并在Member-> User和Customer-> User之间创建关系。我在这里关心的是如何为每个模型实现定制的注册过程? 我尝试了不同的事情,但一切都糟透了!

多个设计用户

这解决了自定义注册过程,并且对我来说似乎是正确的,但是唯一的登录表单是阻止程序。 我找到了关于SO(Devise-从两个模型登录)的答案,该答案建议覆盖Devise :: Models :: Authenticatable.find_for_authentication(conditions)。这似乎很复杂(?),并且由于我是Rails的新手,所以我想知道是否可行?

谢谢你的建议!

trans by 2019-09-24T17:15:57Z

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-09-19T07:16:09Z

rails - 对于json设计请求,“警告:无法验证CSRF令牌真实性”

如何检索CSRF令牌以传递JSON请求?

我知道出于安全原因,Rails正在检查所有请求类型(包括JSON / XML)上的CSRF令牌。

我可以放入我的控制器<%= form_authenticity_token %>,但我会失去CSRF保护(不建议:-))。

这个类似的(仍未被接受的)答案暗示

使用<%= form_authenticity_token %>检索令牌

问题是如何? 我是否需要先对我的任何页面进行调用以检索令牌,然后使用Devise进行真正的身份验证? 或者它是一个一次性的信息我可以从我的服务器获得然后一致地使用(直到我在服务器本身手动更改它)?

trans by 2019-09-18T21:13:20Z

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

上一页 1 2 3 下一页 共3页