【问题标题】:.new and .create method for Rails nested resource(HABTM relationship)Rails 嵌套资源的 .new 和 .create 方法(HABTM 关系)
【发布时间】:2014-05-13 02:15:30
【问题描述】:

我有两个关系,即用户和分支,其中它们之间存在多对多关系(我在他们的模型中使用了 HABTM),它们由一个名为 branches_users 的表连接。

使用时会在分支和连接表中创建一个条目:

User.find(1).branches.create({"branch_id" => 12312, "branch_name" => "sample"})

但是,当我使用时

object = User.find(1).branches.new({"branch_id" => 12312, "branch_name"=> "sample"})

然后使用

object.save

该条目仅在分支表中创建,因此当我使用 User.find(1).branches 时,该条目不会出现。我需要一个解决方法,我需要使用 new 而不是 create,因为我必须在保存之前进行一些操作。

【问题讨论】:

    标签: ruby-on-rails activerecord


    【解决方案1】:

    下面是一个例子:

    object = Branch.new({"branch_id" => 12312, "branch_name"=> "sample"})
    object.users << User.find(1)
    object.save
    

    save 之前,您可以随意操作。它将以正确的方式保存关系。

    【讨论】:

    • 我有问题!我还有另一种关系,即“产品”,它与 Branch 有多对一的关系。问题是 Branch_id 与分支本身的 id 不同(它有两个 id)。当我做 Branch.products 时,我需要参考 Branch_id 而不是 id
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-02
    • 2012-02-09
    • 2016-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多