Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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 4 Rails 4在创建多对多关联时失败_Ruby On Rails 4_Has Many Through - Fatal编程技术网

Ruby on rails 4 Rails 4在创建多对多关联时失败

Ruby on rails 4 Rails 4在创建多对多关联时失败,ruby-on-rails-4,has-many-through,Ruby On Rails 4,Has Many Through,这是我的模式: create_table :policies do |t| t.string :name t.timestamps end create_table :permissions do |t| t.string :name t.string :method t.string :controller t.timestamps end create_join_table :policies, :permissions do |t| t.index :p

这是我的模式:

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

  t.timestamps
end

create_table :permissions do |t|
  t.string :name
  t.string :method
  t.string :controller

  t.timestamps
end

create_join_table :policies, :permissions do |t|
  t.index :policy_id
  t.index :permission_id
end
下面是我用来创建记录及其关联的代码:

policy = Policy.create! name: "View All"
permission = Permission.create!({
  name: "View Events",
  method: "index",
  controller: "Events"
})

policy.permissions << permission
通过迁移创建的表名是
policies\u permissions


我想知道这是否是类名推断不正确的问题

在迁移中交换权限和策略的位置,以便创建权限策略而不是策略权限。Rails按字母顺序推断联接表的类名


有关联接表命名约定的详细信息,请参阅。

谢谢!有趣的是,我在模型中正确地编写了关联名称,但在迁移中却没有
ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR:  relation "permission_policies" does not exist