自定义设备控制器不工作

2024-03-03

我有两个模型居民和用户。它们都包含 roll_number 属性,我现在已经在驻留模型中输入了数据,当用户注册哪个是 Devise 资源时,它会检查驻留模型中是否存在相同的 roll_number ?然后就可以注册用户了!所以基本上我向 Devise 的用户模型添加了属性 (roll_number),然后我编辑了注册控制器的 Create 方法,这是它的代码:

class Users::RegistrationsController < Devise::RegistrationsController
 before_action :configure_sign_up_params, only: [:create]
 before_action :configure_account_update_params, only: [:update]

  # GET /resource/sign_up
  # def new
  #   super
  # end

  def create
    super
    resident = Resident.find_by(roll_number: params[:roll_number])
    if resident.present?
      @user = resident.create_user(params)
      if @user.save
        flash[:info] = "Welcome to messpay"
        redirect_to root_url
      else
        render 'new'
      end
    else
      flash[:danger] = "You have entered a worng Roll number or you are not a Resident"
      redirect_to new_user_registration
    end

  end

  # GET /resource/edit
  # def edit
  #   super
  # end

  # PUT /resource
  # def update
  #   super
  # end

  # DELETE /resource
  # def destroy
  #   super
  # end

  # GET /resource/cancel
  # Forces the session data which is usually expired after sign
  # in to be expired now. This is useful if the user wants to
  # cancel oauth signing in/up in the middle of the process,
  # removing all OAuth session data.
  # def cancel
  #   super
  # end

  # protected


   def configure_sign_up_params
     devise_parameter_sanitizer.permit(:sign_up, keys: [:roll_number,:resident_id])
   end

  # If you have extra params to permit, append them to the sanitizer.
   def configure_account_update_params
     devise_parameter_sanitizer.permit(:account_update, keys: [:roll_number,:resident_id])
   end

  # The path used after sign up.
  # def after_sign_up_path_for(resource)
  #   super(resource)
  # end

  # The path used after sign up for inactive accounts.
  # def after_inactive_sign_up_path_for(resource)
  #   super(resource)
  # end
end

But this code isn't working and I am getting this when I am feeling the form: enter image description here

这是我的表单代码:

<% provide(:title, 'Sign up for a free messpay account') %>
<div class="row">
  <div class="col-xs-5 col-xs-offset-2" style="margin-top: 10%">
    <%= image_tag("signup.jpg", alt: "Thapar",width:"475",height: "331",class:"img-responsive") %>

  </div >
  <div class="col-xs-5" id="signup_form" style="margin-top: 10%">
    <%= image_tag("messpay.gif", alt: "Messpay",height: "38",width: "120") %>

    <p style="font-size:30px;font-weight:100;"> Create an account </p>

<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
  <%= devise_error_messages! %>
        <p style="font-size: 0.87em">Messpay account <%= link_to "What's this?","#" %></p>
  <%= f.text_field :roll_number, class:'form-control',placeholder:"Roll number" %>

  <%= f.email_field :email, class:'form-control',placeholder:"Email" %>

  <%= f.password_field :password, class:'form-control',placeholder:"Password"%>

  <%= f.password_field :password_confirmation, class: 'form-control',placeholder:"Password confirmation"%>

  <%= f.submit "Create account", class: "btn btn-primary" %>
  <% end %>
  <p style="margin-top: 10%;color: gray;">Already have Messpay account<span onclick="openNav()"style="color:#0c90db;cursor:pointer;"> Login here !!</span></p>
  </div>
</div>

我是否正确使用了 Params ?我不明白为什么会发生这种情况!


我认为你应该将下面的代码放入appliction_controller.rb

before_action(:configure_permitted_parameters, if: :devise_controller?)


def configure_permitted_parameters
    devise_parameter_sanitizer.for(:sign_up) << [:roll_number,:resident_id]]
    devise_parameter_sanitizer.for(:account_update) << [:roll_number,:resident_id]]
end

希望对你有帮助

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自定义设备控制器不工作 的相关文章

  • 黄瓜测试java例子?

    我想尝试使用黄瓜测试的示例应用程序 黄瓜测试可以仅使用 ruby 完成 也可以使用 java 完成 请帮我举一个示例 谢谢 您可以查看我们在我们这里编写的一个简单示例来演示 cucumber jvm https github com gph
  • STI 在遗传类型之间发生变化。

    在我的模型中 我像这样使用 STI 车辆型号 vehicle rb class Vehicle lt ActiveRecord Base end 车型 car rb class Car lt Vehicle end 总线模型 bus rb
  • Ruby 自定义字符串排序

    输入字符串 1654AaBcDddeeFF 输出字符串 1456acddeeABDFF 我尝试过的代码 test array 1654AaBcDddeeFF each byte do char test array lt lt char e
  • 如何让 DateTime.parse 返回您所在时区的时间?

    我需要这个 require date DateTime parse Mon Dec 27 6 30pm 返回 EDT 时区下午 6 30 的日期时间 但返回 UTC 时间 如何获取 EST 日期时间或将 UTC 日期时间转换为下午 6 30
  • 用于验证网络路径的正则表达式 PHP、jQuery、JavaScript、Ruby

    尝试找出用于验证网络路径的正则表达式 即 comp xyz or comp or comp x y z storage或者所有部分都更长的东西 但希望能够传达其要点 我目前拥有的是一个简单的输入字段 用户可以通过它传递信息 事情是我不希望他
  • Rails“where”方法通过子属性查找父级

    我有一个 Rails 应用程序 我试图根据子类的日期创建父类的列表 现在我有 orders Order where order reminders date lt 1 month from now 但我收到一个错误 没有这样的列 order
  • 捆绑安装到开发

    由于某种原因 当我跑步时bundle install它安装到生产中 Your bundle is complete It was installed into RAILS ENV production Arrrghh 我如何切换回开发 No
  • Rspec:期望与期望与块 - 有什么区别?

    刚刚学习 rspec 语法 我注意到这段代码有效 context given a bad list of players do let bad players it fails to create given a bad player li
  • 从 ruby​​ 脚本运行另一个 ruby​​ 脚本

    在 ruby 中 是否可以指定使用与运行原始脚本相同的 ruby 解释器来调用另一个 ruby 脚本 例如 如果 a rb 运行 b rb 几次 是否可以替换 system ruby b rb foo bar 与类似的东西 run ruby
  • Python:创建登录系统[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想使用 python 创建一个登录
  • Rails 中的漂亮路径

    我有一个类别模型 我使用默认的脚手架来路由它resources categories 我想知道是否有办法改变路径 category id to category name 我补充道 match categories name gt cate
  • 从 Facebook Account Kit 获取电话号码

    Account Kit 文档指出 如果您使用 AccountKitActivity ResponseType TOKEN 开始登录会话 则可以通过调用 getCurrentAccount 来访问当前帐户的 Account Kit ID 电话
  • 随机显示 NoMethodError:未定义的方法“空?”对于 0:Fixnum

    它在我的本地计算机上运行良好 但使用 Puma Web 服务器在 Heroku 上的rails admin 中出现以下错误 这是我使用 enumerize 的方式 enumerize date type in last date 0 beg
  • 限制 Imagemagick 使用的空间和内存

    我在 Rails 应用程序上使用 Imagemagick 使用 rmagick 但我的服务器 Ubuntu 不是很大 当我启动转换进程时 Imagemagick 占据了我的服务器 30GB HDD 的所有位置 内存 我想限制内存和 tmp
  • Rails Structure.sql 和 schema.rb 之间有什么区别

    我知道 schema rb 文件是一个 ruby 文件 它是在运行 rake 迁移时创建和修改的 但是 Structure sql 呢 我在一些项目中看到了 schema rb 在其他项目中看到了 Structure sql 以及在一些这两
  • Rails 4 中如何使用 attr_accessible?

    attr accessible似乎不再在我的模型中工作 Rails 4 中允许批量分配的方法是什么 Rails 4 现在使用参数强 http edgeapi rubyonrails org classes ActionController
  • watir selenium:浏览器构造函数无法识别的参数

    在我的 Rails 应用程序中 我有一个 nokogiri watir 爬虫 运行良好 在我升级了 gems 也升级了例如 selenium 后 当我使用以下命令打开爬虫浏览器时 BROWSER OPTIONS w headless no
  • 从使用heroku发送的邮件中删除“via sendgrid.me”

    我正在使用免费的 sendgrid 计划从 Heroku 上托管的 Rails 应用程序发送电子邮件 我使用以下组合进行设置这些说明 http devcenter heroku com articles sendgrid and 本教程 h
  • 如何从另一个 .rb 文件访问模块内和类内的 Ruby 方法

    我想知道如何从另一个 rb 文件访问此模块中的方法 module Decisioning module Decision class OfferProxy lt FinanceApplication Offer def my method
  • HTTP 基本身份验证 + 访问令牌?

    我正在开发一个 REST API 计划将其与 Web 和 IOS 应用程序一起使用 我打算让这个 API 在一段时间内保持私有 私有意味着我只希望我的 Web 应用程序和 ios 应用程序访问该 API 我已经阅读了许多不同的身份验证方法

随机推荐