Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何正确创建NxN表的ActiveRecord?_Ruby On Rails - Fatal编程技术网

Ruby on rails 如何正确创建NxN表的ActiveRecord?

Ruby on rails 如何正确创建NxN表的ActiveRecord?,ruby-on-rails,Ruby On Rails,我的Rails应用程序中有以下数据库 def change create_table :animals do |t| t.string :name t.timestamps end create_table :owners do |t| t.string :name t.timestamps end create_join_table :animals, :owners do |t|

我的Rails应用程序中有以下数据库

def change
    create_table :animals do |t|
      t.string :name

      t.timestamps
    end

    create_table :owners do |t|
      t.string :name

      t.timestamps
    end

    create_join_table :animals, :owners do |t|
        t.string :description

        t.timestamps
    end
end
如何创建
AnimalOwner
表的活动记录,例如:
AnimalOwner

当我执行
AnimalOwner.create(…)
时,它使用
animals\u owners
表,而不是
animal\u owners

我知道的两种实现您想要的方法:

  • 在创建表时,您可以通过添加
    table\u name
    选项(了解其他选项),然后创建
    AnimalOwner
    模型,将联接表名称指定为
    AnimalOwner
    。我更喜欢这种方式


  • 您可以创建名为
    AnimalOwner
    (默认名称)的联接表,然后为Rails创建
    AnimalOwner
    模型,并在模型内部添加
    self.table\u name=animals\u owner
    self.set\u table\u name=animals\u owner
    ,我知道两种方法来实现您的目标:

  • 在创建表时,您可以通过添加
    table\u name
    选项(阅读其他选项)指定联接表名称,然后正常创建
    AnimalOwner
    模型。我更喜欢这种方式


  • 您可以创建名为
    AnimalOwner
    (默认名称)的联接表,然后创建
    AnimalOwner
    模型,并在模型内添加
    self.table\u name=animals\u owner
    self.set\u table\u name=anists\u owner
    Rails非常感谢您的回复,@Thang.我会再等一会儿,看看是否有更多的方法可以做到这一点。干杯:)(顺便说一句:我喜欢第二种方法,如果没有其他方法的话)3.只需按照惯例,为餐桌命名
    动物主人
    ,并将你的时间花在真正重要的事情上。非常感谢你的回复,@Thang。我会再等一会儿,看看是否有更多的方法可以做到这一点。干杯:)(顺便说一句:我喜欢第二种方法,如果没有其他方法的话)3.只需遵循惯例,给表格命名
    动物所有者
    ,并将您的时间花在真正重要的事情上。您是否在问如何让
    动物所有者
    表格改为
    动物所有者
    ?如果是,为什么?您试图解决的问题是什么?您好。我想知道如何制作ActiveRe指向表格
    animals\u owners
    :)的绳索(你是在问如何让
    animals\u owners
    表格取名为
    animal\u owners
    ?若然,原因为何?你想解决什么问题?喂。我想知道如何制作一个指向表
    动物\u所有者的ActiveRecord
    :)