Simple_form 必填字段不起作用 - Ruby on Rails

2024-01-30

我在 RoR 应用程序中有一个使用 simple_form 构建的提交表单。当字段为空时,应用程序仍会进入下一步,不会提示错误或警告。这些字段应该是默认的required: true;但即使手动编写也不起作用。

该应用程序有 3 个步骤:NewPost(新视图)-> Preview(创建视图)-> Post。

通过我的控制器和视图的摘录会更清楚:

def new
    @post= Post.new
end

def create
    @post = Post.new(params.require(:post).permit(:title, :category_id))

    if params[:previewButt] == "Continue to Preview your Post"
      render :create
    elsif params[:createButt] == "OK! Continue to Post it"
      if @post.save!
      redirect_to root_path
      else
      render :new
      end 
    elsif params[:backButt] == "Make changes"
      render :new
    end
  end

My New查看(摘录):

<%= simple_form_for @post do |form| %>
<%= form.input :title, input_html: { class: 'post-title-input' }, label: false, hint: '"Your post title"' %>
<%= form.collection_radio_buttons(:category_id, Category.all, :id, :name, :item_wrapper_class => "selectable" ) %>
<%= form.button :submit , name: "previewButt", value: "Continue to Preview your Post",  class: "btn btn-lg btn-primary btn-preview" %>
<% end %>

My Create查看(摘录):

<%= simple_form_for @post do |form| %>
<%= form.hidden_field :title, {:value => @post.title} %>
<%= form.hidden_field :category_id, {:value => @post.category_id} %>
<% end %>

请注意,问题不在于保存时,模型定义仍然有效,问题仅出现在 simple_form 中。

class Post < ActiveRecord::Base
    belongs_to :category
    validates :title, presence: true
    validates :category_id, presence: true
end

SOLUTION感谢迪基男孩 https://stackoverflow.com/users/1141264/dickieboy hint:

将控制器更改为:

      def create
        @post = Post.new(params.require(:post).permit(:title, :category_id))

        if params[:previewButt] == "Continue to Preview your Post"
           if @post.valid? 
              render :create
           else
              render :new 
        elsif params[:createButt] == "OK! Continue to Post it"
          if @post.save!
          redirect_to root_path
          else
          render :new
          end 
        elsif params[:backButt] == "Make changes"
          render :new
        end
      end

simple_form 初始化程序中有一个设置可以激活客户端验证。无论客户端验证如何,您也必须保留服务器端验证(您当前正在做的事情)。要使用 simple_form 实现客户端验证,请执行以下操作:

配置/初始化器/simple_form.rb

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

Simple_form 必填字段不起作用 - Ruby on Rails 的相关文章

随机推荐

  • Tkinter 在 Windows XP 上激活窗口

    我有一个小型 GUI 应用程序 用于侦听网络消息 以便用户可以更新一些信息并接受它 这是在生产工厂环境中 用于与特定的物理硬件交互 在某些情况下通过串行 工作流程如下所示 用户正在与另一个程序交互 5250 绿屏 他们输入特定的键绑定 将
  • 来自位图源的图像的 LazyColumn 闪烁/闪烁

    我是 Jetpack Compose 的新手 我目前正在开发一个聊天应用程序 我要求用户从图库中选择图像或从相机中拍照 然后我将文件 Uri 保存到数据库中 然后监听所有消息的列表 当此列表更新时 此图像正在重新组合并闪烁 视图模型中的消息
  • 我的 PHP 脚本缓存(公共)友好吗?

    我已经完成了一个可以提供许多文档的小型 PHP 应用程序 这些文件must可由客户端缓存and代理 由于代理可以缓存我的结果 因此我必须格外小心 因为我提供的文档可以具有不同的 MIME 类型 基于 SERVER HTTP ACCEPT 的
  • arm-none-eabi 和 arm-linux-gnueabi 之间的区别?

    arm none eabi 和 arm linux gnueabi 有什么区别 我知道如何使用它们的区别 一种用于裸机软件 另一种用于在 Linux 上运行的软件 但技术背景是什么 我发现 ABI 存在差异 据我所知 它类似于 API 但在
  • Jquery mousedown 与 click

    今天我发现了一些让我很困惑的事情 我只是试图通过 jquery 隐藏 s th 首先我尝试使用这个 specificdiv li nth child 3 click function anotherdiv hide 但它不起作用 一段时间后
  • 使用 GIT 部署代码 - 签出与重置 -- 难吗?

    我需要确保服务器上的 python 部署位置之一始终与远程分支同步 并删除服务器上的任何更改 选项 1 和选项 2 有什么区别 哪一个是首选 我打算及时运行它 以确保服务器代码与远程同步 选项1 git clean f x git fetc
  • OpenMP 并行减少会产生错误的结果

    我正在使用信号矩阵 我的目标是计算一行所有元素的总和 该矩阵由以下结构表示 typedef struct matrix float data int rows int cols int leading dim matrix 我不得不提到矩阵
  • iphone,当使用“renderInContext”将图像保存到设备时,图像模糊?

    我正在使用此代码从视图中渲染图像 然后我将其保存到相册中 图像模糊 为什么 有解决办法吗 UIGraphicsBeginImageContext self view bounds size self view layer renderInC
  • Azure AD B2C 连接用户使用 Graph AD API 更改密码

    我们正在使用Azure AD B2C 我正在尝试为登录用户实现changePassword 功能 我们已经遵循了这个教程https learn microsoft com en us azure active directory b2c a
  • 在 GKE / Kubernetes 中构建、推送和测试 Docker 镜像的工作流程

    我正在开发一个 Kubernetes 服务 用于在 Google Container Egine GKE 中部署 直到最近 我还在 Google Cloud Shell 中构建了 Docker 镜像 但现在已经达到了配额限制 因为运行 Cl
  • 警报管理器立即触发

    您好 我目前正在使用 AlarmManager 我写了下面给出的代码 根据代码 AlarmManager 应在 10 秒后触发 但在我的代码中 警报管理器会立即触发 请帮忙 public class MainActivity extends
  • 数据结构的功能类似于 C 或 C++ 中的数据库

    是否有一种数据结构可以提供数据库的功能 如插入 更新 删除等 例如 创建一个类似于数据库表的结构 在其上存储数据并对其进行查询 有选择地删除它 我知道使用哈希表可以做到这一点 例如 uthash 库 但据我所知 在哈希表中仅更新一个列元素并
  • eclipse 不适用于 ubuntu 16.04

    我刚刚安装了ubuntu 16 04并下载了eclipse并解压 当我启动 Eclipse 时 欢迎页面是空的 当我启动 eclipse 市场时 什么也没有发生 如何解决这个问题 编辑完后尝试启动 Eclipseeclipse ini文件并
  • IE10 SCRIPT5009:“__doPostBack”未定义

    我在使用 ASP NET 控件的 IE10 上遇到问题 需要 JavaScript 回发 例如链接按钮 它可以在 IE9 版本以及 IE10 兼容模式下正常工作 但在 IE10 标准模式下 出现以下错误 SCRIPT5009 doPostB
  • 使用 gradle 脚本结帐

    我是 gradle 新手 我想使用 gradle 脚本签出远程存储库 可以运行 shell 命令 Inside gradle 任务来使用日期时间戳 shell 命令克隆远程存储库 是的 您可以使用 gradle Exec 类型任务在 OS
  • PHP 中的 preg_replace - NOT 条件的正则表达式

    我正在尝试使用 preg replace 在 PHP 中编写一个函数 它将替换列表中未找到的所有字符 通常我们会替换它们所在的位置 但这个不同 例如 如果我有字符串 mystring ab2c4d 我可以编写以下函数 将所有数字替换为 pr
  • 从 Mysql 导出 CSV

    我在导出使用 php 从我的 mysql 表之一创建的 csv 文件时遇到了一些麻烦 我使用的代码打印了正确的数据 但我看不到如何在 csv 文件中下载这些数据 而是提供了创建的文件的下载链接 我以为浏览器应该自动提供文件供下载 但事实并非
  • Java:如何检查数组中的元素是否已初始化?

    我想检查数组中的某个元素是否已初始化 我该怎么做 创建数组时 数组中的所有值都会被初始化 初始值可以明确设置 例如X xs x1 xN 或者在实例化数组时分配默认值 对于对象数组 每个元素的默认值是null for a boolean数组
  • 在 Windows Phone 7 上录制扬声器

    您知道是否可以拦截 win Phone 7 上的音频流并记录扬声器上正在播放的内容 或者 我使用 MediaElement 有没有办法获取当前流 我想在达到特定频率时添加一些动画 thanks 只要您知道该媒体的位置并可以启动下载 您就可以
  • Simple_form 必填字段不起作用 - Ruby on Rails

    我在 RoR 应用程序中有一个使用 simple form 构建的提交表单 当字段为空时 应用程序仍会进入下一步 不会提示错误或警告 这些字段应该是默认的required true 但即使手动编写也不起作用 该应用程序有 3 个步骤 New