首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >accept_nested_attributes_for :allow_destroy,:_destroy不工作

accept_nested_attributes_for :allow_destroy,:_destroy不工作
EN

Stack Overflow用户
提问于 2015-04-06 12:57:18
回答 1查看 5.7K关注 0票数 5

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

简单形式,茧

我在销毁作为嵌套属性的记录时遇到了困难。根据一些冗长的研究,我相信我的代码是正确的,但是我可能遗漏了一些愚蠢的东西。

模型

代码语言:javascript
复制
has_many :staff_services_joins, :dependent => :destroy
has_many :services, :through => :staff_services_joins
accepts_nested_attributes_for :staff_services_joins, :allow_destroy => true

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

控制器方法

代码语言:javascript
复制
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

强参数

代码语言:javascript
复制
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
    ]
)

示例更新params散列

代码语言:javascript
复制
{
"store_id" => "2",
"avatar" => "avatar.png",
"remote_avatar_url" => "",
"first_name" => "Joshua",
"last_name" => "Tyree",
"email" => "joshuat@createthebridge.com",
"active" => "0",
"admin" => "1",
"staff_services_joins_attributes" => {
    "0" => {
        "service_id" => "2",
        "price" => "50.00",
        "duration" => "30",
        "_destroy" => "1"
    }
}

}

基于has,这个东西应该摧毁模型,但出于某种原因,它肯定不是,任何帮助都是最肯定的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-06 15:15:16

为了将accepts_nested_attributes_for强参数结合使用,您需要指定哪些嵌套属性应该是白化。您做到了,但是没有添加:id,这是执行删除操作所需的。"_destroy"键将记录标记为删除,但是要查找记录并在内部删除,它需要有:id

您可以阅读移除对象指南。

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29471777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档