设计不受欢迎的服务条款

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计不受欢迎的服务条款相关的知识,希望对你有一定的参考价值。

我正在尝试为我的设计邀请视图添加服务条款复选框。因此,会发出邀请,工程师会点击接受邀请链接,然后到达以下表单:

<h2><%= t 'devise.invitations.edit.header' %></h2>

<%= simple_form_for resource, as: resource_name, url: invitation_path(resource_name), html: { method: :put } do |f| %>
  <%= devise_error_messages! %>

  <%= f.hidden_field :invitation_token %>

  <%= f.input :first_name %>
  <%= f.input :last_name %>

  <%= f.input :password %>
  <%= f.input :password_confirmation %>

  <%= f.input :terms_of_service, as: :boolean, required: true, label: ("I agree to the #{link_to 'Terms of Service', page_path('terms'), target: :_blank}").html_safe %>

  <%= f.button :submit, t("devise.invitations.edit.submit_button") %>
<% end %>

我的模型是:

class Engineer < ApplicationRecord
  devise :invitable, :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable

  attr_accessor :terms_of_service
.
.
.
  validates_acceptance_of :terms_of_service, if: :invitation_accepted_at?, acceptance: true, allow_nil: false

我有一个自定义设计控制器:

class CustomDeviseController < ActionController::Base
  before_action :configure_permitted_parameters, if: :devise_controller?
.
.
.
  protected

  def configure_permitted_parameters
    devise_parameter_sanitizer.permit(:account_update, keys: [:first_name, :last_name])
    devise_parameter_sanitizer.permit(:accept_invitation, keys: [:first_name, :last_name, :terms_of_service])
  end

我收到表单错误“必须接受服务条款”,这告诉我验证正在运行。问题似乎是服务条款失败,因为它是零,因此验证失败。我无法理解为什么当我勾选复选框时它没有通过并满足验证?

- - 更新 - -

生成的参数哈希是:

{"utf8"=>"✓", "authenticity_token"=>"aoGCMoYRcmJ2EmpM8L+UmQQcB99FScgA6nFM0kY+53dxDodCZDislej48+lBL4Qcb5ZgAcGHyd1A+3qkIol6KA==", "engineer"=>{"invitation_token"=>"e9oVkxuYMtX9Fzxao7xR", "first_name"=>"sad", "last_name"=>"test", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]", "terms_of_service"=>"0"}, "commit"=>"Create Account"}
Unpermitted parameter: :terms_of_service
答案

事实证明,因为我有一个客户设计控制器,但也是名称间隔工程师下的invitables东西。我允许在错误的文件中使用params。

我不得不在Engineers :: InvitationsController中允许它们。

以上是关于设计不受欢迎的服务条款的主要内容,如果未能解决你的问题,请参考以下文章

如何找到最受欢迎和最不受欢迎的产品?

为啥 XML::Simple 不受欢迎?

VSCode插件开发全攻略代码片段设置自定义欢迎页

Skimage.draw.ellipse产生了两条不受欢迎的线。

来自 PHP 文件信息的不正确/不受欢迎的 ogv MIME 类型

C++ 之父被冻结 Reddit 帐号;Docker 禁止美国“实体清单”主体使用