当前位置 : 主页 > 编程语言 > ruby >

ruby-on-rails – Rails强参数 – 如果我的一个字段是可选的,该怎么办?

来源:互联网 收集:自由互联 发布时间:2021-06-23
我不会声称自己在任何方面都是Rails的专家.令我困惑的一件事是强参数,我没有找到任何真正简单的教程,大多数搜索结果主要是在rails文档上的命中,虽然通常是准确的,但我找不到任何方
我不会声称自己在任何方面都是Rails的专家.令我困惑的一件事是强参数,我没有找到任何真正简单的教程,大多数搜索结果主要是在rails文档上的命中,虽然通常是准确的,但我找不到任何方便阅读,不能被视为教程.强对称的 github似乎也没有涵盖这一点.

假设我有一个名为“资源”的实体.

class ResourcesController < ApplicationController
  ...
  def create
    @resource = Resource.new(resource_params)
    if @resource.save
      ...
      respond_with(@resource.level)
    else
      ...
    end
  end

  def update
    if @resource.update(resource_params)
      ...
      respond_with(@resource.level)
    else
      ...
    end
  end
  ...
  def resource_params
    params.require(:resource).permit(:name, :url, :description, :level_id)
  end
end

假设我有一个scaffolded表单,它显示name,url,description和level_id的字段.所有字段都是必填字段.我不知道如何修改resource_params函数以确保在更新(或创建)资源时必须使用name,url和level_id,但该描述是可选的(但仍应允许).

我已经尝试从require行中删除描述,并将其作为params.permit(:description)添加到单独的行中但是没有任何区别,该字段在表单中仍然是必需的.

对此的任何帮助都会受到欢迎!

正如我所说,这与强参数无关.您只需要删除required:true即可使该字段成为可选字段.
网友评论