嵌套 has_one 关联的强参数

2024-05-19

我似乎遗漏了一些明显的东西,但我无法允许嵌套的属性has_one协会。

控制器:

def create
  @crossword = Crossword.new(crossword_params)

  if @crossword.save
    render :show, status: :created, location: [:api, @crossword]
  else
    render json: @crossword.errors, status: :unprocessable_entity 
  end
end

def crossword_params
  params.require(:crossword).permit(:title, :grid_size, grid_size_attributes: [:rows, :columns])
end

Model:

validates :title, :grid_size, presence: true
validates_associated :grid_size
has_one :grid_size
accepts_nested_attributes_for :grid_size

Request:

POST /api/crosswords.json HTTP/1.1
X-Accept: application/crosswords.v1
Content-Type: application/json
Host: localhost:3000
Connection: close
User-Agent: Paw/2.1 (Macintosh; OS X/10.10.0) GCDHTTPRequest
Content-Length: 83

{"crossword":{"title":"My Aweosme Crossword","grid_size":{"rows":15,"columns":15}}}

Rails 控制台输出:

Started POST "/api/crosswords.json" for 127.0.0.1 at 2014-12-19 11:05:13 -0500
Processing by Api::V1::CrosswordsController#create as JSON
Parameters: {"crossword"=>{"title"=>"My Aweosme Crossword", "grid_size"=>{"rows"=>15, "columns"=>15}}}
Can't verify CSRF token authenticity
Unpermitted parameters: grid_size
   (0.1ms)  BEGIN
   (0.1ms)  ROLLBACK
Completed 422 Unprocessable Entity in 2ms (Views: 0.1ms | ActiveRecord: 0.2ms)

我错过了一些微不足道的事情吗?似乎每个人都这么说。


在 POST 正文中将“grid_size”更改为“grid_size_attributes”。

如果您想继续使用“grid_size”,请更新您的crossword_params method:

def crossword_params
    params[:crossword][:grid_size_attributes] = params[:crossword][:grid_size] if params[:crossword][:grid_size]
    # NOTE :grid_size removed!
    params.require(:crossword).permit(:title, grid_size_attributes: [:rows, :columns])
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

嵌套 has_one 关联的强参数 的相关文章

随机推荐

  • 两将协议

    我正在尝试在不可靠的通道上制定一个协议 基本上两方 A 和 B 必须同意做某事 所以这就是两位将军的问题 http en wikipedia org wiki Two Generals 27 Problem 由于没有万无一失的解决方案 我正
  • xdebug.remote_handler 在 PHP.INI 中设置,但未在 PHPinfo 中显示

    我正在尝试让 Xbdebug 与 NetBeans 一起运行 以便调试一些 PHP 代码 我确信几年前我已经让它工作了 然后切换了 IDE 现在想切换回来 When I try to debug the status bar shows 并
  • C++:如何从函数返回shared_ptr

    当尝试从函数返回shared ptr时 我得到 对局部变量 recipe 的引用返回 Werror return local addr 我哪里做错了 shared ptr
  • 将查询字符串添加到 Ajax url 调用

    我想知道当我们调用 Jquery Ajax 时是否可以将查询字符串与 URL 一起传递 例子 ajax type POST url index php task addNewInfo data regForm serialize dataT
  • 变量替换为字符串

    我可以做类似的事情吗 s said s blah name blah 在 VB NET 中 写字越来越痛苦name said blah blah 在VB NET 14 对于VS2015 中 您可以使用字符串插值 https msdn mic
  • nHibernate 3 - Left Join re-Linq 解决方案

    我正在尝试使用 nHibernate 3 运行下面的 Linq 查询 var items from c in session Query
  • 是否可以使用 jQuery .on 和悬停?

    我有一个 ul 在初始页面加载后用 javascript 填充 我目前正在使用 bind with mouseover and mouseout 该项目刚刚更新到 jQuery 1 7 所以我可以选择使用 on 但我似乎无法让它工作hove
  • 在 MVC 应用程序中使用 DataTables.NET ajax 调用访问 WebAPI 2 json

    我一直在尝试让 DataTables NET 与我构建的 WebAPI RESTFul 服务很好地配合 但返回的 json 似乎不符合 DataTables 正在寻找的内容 我尝试了各种 服务器处理 示例以及我在互联网上找到的一些示例 例如
  • Angular ui.router,从子控制器调用父控制器函数?

    我将 Angular 与 ui router 一起使用 并设置了嵌套视图 父视图有一个 div 我可以通过父控制器上的函数切换其可见性 我想从嵌套视图的子控制器调用此函数 我该怎么做 http plnkr co edit zw5WJVhr7
  • 是否有一种类型安全的方法可以将较大的对象减少()为打字稿中的新类型?

    我有一个表示数据库查询结果的数据结构 它是一个具有许多属性的对象 所有属性都是标量 在我的例子中 都是字符串或数字 我想提取这些属性的一部分并填充一个具有已定义形状的新对象 const input Record
  • Gradle,取决于订购

    对 Gradle 中的排序感到困惑 我是一个新手 之前使用 Ant 进行构建 尝试使用 Gradle 这可能会解释其中的一些内容 简要背景 以防有人问 你为什么要这样做 我们在 war 文件中发布 Java WebStart 应用程序 Ja
  • Same_length/2 更好的纯版本

    鉴于频繁的纯定义same length 2 as same length same length As Bs same length As Bs same length L L loops 是否有一个纯粹的定义不会在这种情况下循环 类似于纯
  • 命名空间常量

    我正在寻找一种理想的方法来命名一些常量以便稍后在我的代码中访问 理想情况下 常量有两层 其中第一层是整个项目的命名空间 我们称之为Foo 第二层是常量所代表的类 我们称之为Bar 是使用以下内容实现此类操作的最佳方法吗 var Foo Fo
  • 如何在mathematica中进行函数替换

    我有这样的表情D f x y x 我想替换f x y with x y 我尝试了以下方法 D f x y x f x y gt x y and D f x y x f gt x y 但两者都不起作用 将不胜感激您的帮助 谢谢 The Ful
  • 如果不能保证调用 onDestroy() 为什么要实现 onDestroy() 呢?

    根据 android 活动生命周期 保证被调用的唯一回调 如果活动离开运行状态 这通常是预期的 是onPause 因此 我必须假设在某些情况下实施是有意义的onStop and onDestroy 虽然他们并不是真正的保证被称为 我明白那个
  • javax.inject.Named 注释的用途是什么?

    我正在尝试理解javax inject包 我不清楚是什么javax inject Named注释应该用于 Javadoc 没有解释其背后的想法 Javadoc 位于http download oracle com javaee 6 api
  • 子文件夹和关系中的 Rails 模型

    我在自动加载的文件夹中组织了一些轨道模型 config autoload paths Dir Rails root join app models 我可以直接使用所有模型 例如Image first file name 但是当我尝试通过关系
  • 了解 hashchange 事件的执行顺序

    我有一个关于此代码片段的问题要问您 window location hash 1 window on hashchange function alert hello 上面的脚本应该执行以下操作 将位置哈希设置为1 任何进一步的改变 gt a
  • 如何在 Vue3 中使用 TypeScript 定义 ref 的类型(绑定到模板)?

    模板
  • 嵌套 has_one 关联的强参数

    我似乎遗漏了一些明显的东西 但我无法允许嵌套的属性has one协会 控制器 def create crossword Crossword new crossword params if crossword save render show