Accept_nested_attributes_for :allow_destroy, :_destroy 不起作用

2024-04-21

我有一个 Rails 4.1 应用程序,它使用了一些值得注意的技术。

简单的形式,茧

我在销毁嵌套属性的记录时遇到问题。基于一些冗长的研究,我相信我的代码是正确的,但是我可能遗漏了一些愚蠢的东西。

Model

has_many :staff_services_joins, :dependent => :destroy
has_many :services, :through => :staff_services_joins
accepts_nested_attributes_for :staff_services_joins, :allow_destroy => true

这有点不正统,但我在连接模型上有两个组件,它们不是外键,需要设置。这就是为什么我接受连接模型而不是服务模型的嵌套属性。

控制器方法

def update
ap staff_params
# if @staff_member.update_with_account staff_params, params[:password]
if @staff_member.update_attributes staff_params
  flash[:notice] = 'Successfully updated staff member! :)'
  redirect_to vendor_store_staff_path current_store, @staff_member
else
  flash[:error] = 'Failed to update staff member :('
  render :edit
end end

参数强

params.require(:staff).permit(
    :user_id,
    :store_id,
    :avatar,
    :remote_avatar_url,
    :first_name,
    :last_name,
    :email,
    :active,
    :admin,
    :staff_services_joins_attributes => [
        :staff_id,
        :service_id,
        :price,
        :duration,
        :_destroy
    ]
)

更新参数哈希示例

{
"store_id" => "2",
"avatar" => "avatar.png",
"remote_avatar_url" => "",
"first_name" => "Joshua",
"last_name" => "Tyree",
"email" => "[email protected] /cdn-cgi/l/email-protection",
"active" => "0",
"admin" => "1",
"staff_services_joins_attributes" => {
    "0" => {
        "service_id" => "2",
        "price" => "50.00",
        "duration" => "30",
        "_destroy" => "1"
    }
}

}

根据现有情况,这个东西应该会破坏该模型,但由于某种原因它肯定不会。非常感谢任何帮助。


为了使用accepts_nested_attributes_for http://edgeapi.rubyonrails.org/classes/ActionController/StrongParameters.html with 参数强,您需要指定应包含哪些嵌套属性白名单。你做到了,但你错过了添加:id执行该操作所需的deletion手术。"_destroy"key标记了要删除的记录,但是要找出该记录并删除内部,它需要有:id存在于那里。

You can read 移除物体 http://guides.rubyonrails.org/form_helpers.html#removing-objects guide.

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

Accept_nested_attributes_for :allow_destroy, :_destroy 不起作用 的相关文章

随机推荐

  • 在 SVG 路径中对 SVG 进行动画处理

    我已经构建了一个路径动画 但 svg 中的锯片有问题 我想要为 Sawblade 制作动画 360 度旋转
  • 尝试伪造和轮换用户代理

    我正在尝试伪造用户代理并在 Python 中轮换它们 我在网上找到了一个关于如何使用 Scrapy 执行此操作的教程scrapy 用户代理 https github com svetlyak40wt scrapy useragents包裹
  • 如何在 Jekyll 中列出同一类别的帖子?

    我想列出与当前帖子具有相同类别的固定数量的最近帖子 这就是我得出的结论 for category name in page categories limit 1 h2 Other articles in category name h2 u
  • 使用 SSH.NET 在命令输出期间发送输入

    With PuTTY I connect to an SSH server and then I execute a command that constantly output logs multiple lines per second
  • Drupal:drupal_set_message 不显示消息

    当用户在我的网站上注册时 我似乎无法从 drupal set message 收到消息 我正在使用 Drupal 6 14 在 user module 中添加打印 function user register submit form for
  • Laravel 5 重写异常处理程序

    我想知道是否可以重写 Laravel 5 中的应用程序异常处理程序类 而不将其扩展到另一个类 也许更好的说法是我想要它 这样就不会App Exceptions Handler将在异常时调用 但是我自己的处理程序之一 提前致谢 正如 Digi
  • 在 oauth2 SignedJwtAssertionCredentials 中获得“invalid_grant”

    我正在尝试在服务器到服务器 JSON API 场景中创建 oauth2 access token 但它因 invalid grant 错误而失败 请帮助 from oauth2client client import SignedJwtAs
  • 如何检测前置摄像头放置在设备上的位置?

    有什么方法可以检测 Android 设备上前置摄像头的放置位置吗 我认为在手机上它总是在它的顶部 靠近耳机 但所有平板电脑都是不同的 我检查了华硕 Transformer 前置摄像头位于侧面 如果我以横向模式握住它 则位于顶部 但三星 Ga
  • 如何使用 EPPlus 移动工作表?

    需要什么命令EPPlus 移动工作簿中的工作表位置 我找不到任何适用于 EPPlus 互操作的移动命令 有四种移动工作表的方法 他们是 excelPackage Workbook Worksheets MoveAfter excelPack
  • 我想让图像全屏显示,直到滚动

    这是我尝试将此全屏图像应用到的页面 http www alexwiley co uk portfolio http www alexwiley co uk portfolio 我希望使图像显示 100 宽度和 100 高度 直到向下滚动 然
  • ASP.NET:Server.Execute() 中的 BOM

    我用它来写入响应流 using var writer new StringWriter context Server Execute virtualpath writer string s writer ToString Replace c
  • C++ 中的表达式必须有常量值错误[重复]

    这个问题在这里已经有答案了 可能的重复 有没有办法用非常量变量初始化数组 C https stackoverflow com questions 972705 is there a way to initialize an array wi
  • ViewPager中多个Fragment之间的通信对象

    我有 5 个片段ViewPager用于逐步用多个字段填充业务对象 在每一步中都会设置其中一些字段 我读过很多关于片段之间通信的文章 但我对其他人喜欢的方式感到不舒服 所以在考虑我应该如何在我的情况下做到这一点之后 最后我开始考虑使用所有片段
  • Jenkins中的日志解析规则

    我正在使用 Jenkins 日志解析器插件来提取并显示构建日志 规则文件看起来像 Compiler Error error i error Compiler Warning warning i warning 一切正常 但由于某些原因 在
  • 时间:2019-03-17 标签:c#makeShowItemToolTipssticky

    我有一个 ListView 其中几个项目的文本超出了列宽 ShowItemToolTips 意味着我可以将鼠标悬停在列上并查看全文 这很棒 然而 对于很长的文本 它会在有时间阅读所有内容之前消失 所以我想让它保持更长时间 或者可能直到手动关
  • 通过“递归”策略进行合并

    我知道 git merge 递归实际上发生在有超过 1 个共同祖先的情况下 并且它将创建一个虚拟提交来合并这些共同祖先 然后再继续合并最近的提交 抱歉 我不确定是否应该有一个术语这 但我一直在尝试查找有关 git merge 递归策略实际如
  • 如何从所有应用程序加载 Django 装置?

    我在 Django 应用程序中使用固定装置 但只有两个应用程序加载了固定装置 当我使用 verbosity 2 手动运行 loaddata 时 我可以看到它只在两个应用程序中查找 尽管我在内部创建了更多的固定装置目录 所有应用程序均已正确安
  • django get_or_create 返回错误:“tuple”对象没有属性

    我是 django 新手 我正在尝试使用 get or create 模型函数 但即使我的模型中有该属性 我也会收到错误 AttributeError at professor adicionar compromisso tuple obj
  • 创建自定义颜色集 TinyMCE

    我已经能够为 TinyMCE 创建自己的字体颜色选择器 但是调色板链接到原始颜色选择器 我想做的是使我的自定义颜色选择器完全独立于原始颜色选择器 这样我可以同时显示两者 这是我当前的代码 这可以工作 但是两个按钮的调色板是相同的 tinym
  • Accept_nested_attributes_for :allow_destroy, :_destroy 不起作用

    我有一个 Rails 4 1 应用程序 它使用了一些值得注意的技术 简单的形式 茧 我在销毁嵌套属性的记录时遇到问题 基于一些冗长的研究 我相信我的代码是正确的 但是我可能遗漏了一些愚蠢的东西 Model has many staff se