Ruby on rails self.table_名称在具有不同rails架构的模型中不起作用
下面是创建设置模式和添加表createRuby on rails self.table_名称在具有不同rails架构的模型中不起作用,ruby-on-rails,postgresql,activerecord,ruby-on-rails-5,Ruby On Rails,Postgresql,Activerecord,Ruby On Rails 5,下面是创建设置模式和添加表createuser和role class CreateSettingSchema < ActiveRecord::Migration[5.0] def up execute 'CREATE SCHEMA settings' create_table "settings.users" do |t| t.string :name t.string :email t.string :phone t
user
和role
class CreateSettingSchema < ActiveRecord::Migration[5.0]
def up
execute 'CREATE SCHEMA settings'
create_table "settings.users" do |t|
t.string :name
t.string :email
t.string :phone
t.string :address
t.timestamps
end
create_table "settings.roles" do |t|
t.string :name
t.timestamps
end
end
def down
drop_table "settings.roles"
drop_table "settings.users"
execute 'DROP SCHEMA settings'
end
end
我查过了
但当我尝试访问设置角色时,它会显示以下错误
2.3.1 :005 > SettingRole
ArgumentError: wrong number of arguments (given 1, expected 0)
from /home/uzaif/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.6/lib/active_record/model_schema.rb:217:in `table_name'
from /home/uzaif/learn/enc_attr/app/models/setting_role.rb:2:in `<class:SettingRole>'
from /home/uzaif/learn/enc_attr/app/models/setting_role.rb:1:in `<top (required)>'
from /home/uzaif/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.6/lib/active_support/dependencies.rb:477:in `load'
from /home/uzaif/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.6/lib/active_support/dependencies.rb:477:in `block in load_file'
from /home/uzaif/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.6/lib/active_support/dependencies.rb:662:in `new_constants_in'
from /home/uzaif/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.6/lib/active_support/dependencies.rb:476:in `load_file'
from /home/uzaif/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.6/lib/active_support/dependencies.rb:375:in `block in require_or_load'
from /home/uzaif/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.6/lib/active_support/dependencies.rb:37:in `block in load_interlock'
from /home/uzaif/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.6/lib/active_support/dependencies/interlock.rb:12:in `block in loading'
from /home/uzaif/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.6/lib/active_support/concurrency/share_lock.rb:150:in `exclusive'
from /home/uzaif/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.6/lib/active_support/dependencies/interlock.rb:11:in `loading'
from /home/uzaif/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.6/lib/active_support/dependencies.rb:37:in `load_interlock'
from /home/uzaif/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.6/lib/active_support/dependencies.rb:358:in `require_or_load'
from /home/uzaif/.rvm/gems/ruby-2.3.1/gems/activesupport-
2.3.1:005>设置角色
ArgumentError:参数数目错误(给定1,应为0)
from/home/uzaif/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.6/lib/active\u record/model\u schema.rb:217:在“表名”中
from/home/uzaif/learn/enc_attr/app/models/setting_role.rb:2:in`'
from/home/uzaif/learn/enc_attr/app/models/setting_role.rb:1:in`'
from/home/uzaif/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.6/lib/active\u support/dependencies.rb:477:in'load'
来自/home/uzaif/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.6/lib/active\u support/dependencies.rb:477:“加载文件中的块”
from/home/uzaif/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.6/lib/active\u support/dependencies.rb:662:in'new\u constants\u in'
来自/home/uzaif/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.6/lib/active\u support/dependencies.rb:476:“加载文件”中
from/home/uzaif/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.6/lib/active\u support/dependencies.rb:375:在“请求或加载中的块”中
from/home/uzaif/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.6/lib/active\u support/dependencies.rb:37:“加载中的块”
from/home/uzaif/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.6/lib/active\u support/dependencies/interlock.rb:12:在“加载中的块”中
from/home/uzaif/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.6/lib/active\u-support/concurrency/share\u-lock.rb:150:在“独占”中
from/home/uzaif/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.6/lib/active\u support/dependencies/interlock.rb:11:在“加载”中
from/home/uzaif/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.6/lib/active\u support/dependencies.rb:37:in'load\u interlock'
from/home/uzaif/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.6/lib/active\u support/dependencies.rb:358:in“require\u或\u load”
来自/home/uzaif/.rvm/gems/ruby-2.3.1/gems/activesupport-
如前所述,您需要将其设置为:
self.table_name = 'settings.roles'
您使用的是什么版本的rails?@JagdeepSingh rails“~>5.0.6”
一个真正的错误:)
2.3.1 :005 > SettingRole
ArgumentError: wrong number of arguments (given 1, expected 0)
from /home/uzaif/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.6/lib/active_record/model_schema.rb:217:in `table_name'
from /home/uzaif/learn/enc_attr/app/models/setting_role.rb:2:in `<class:SettingRole>'
from /home/uzaif/learn/enc_attr/app/models/setting_role.rb:1:in `<top (required)>'
from /home/uzaif/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.6/lib/active_support/dependencies.rb:477:in `load'
from /home/uzaif/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.6/lib/active_support/dependencies.rb:477:in `block in load_file'
from /home/uzaif/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.6/lib/active_support/dependencies.rb:662:in `new_constants_in'
from /home/uzaif/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.6/lib/active_support/dependencies.rb:476:in `load_file'
from /home/uzaif/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.6/lib/active_support/dependencies.rb:375:in `block in require_or_load'
from /home/uzaif/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.6/lib/active_support/dependencies.rb:37:in `block in load_interlock'
from /home/uzaif/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.6/lib/active_support/dependencies/interlock.rb:12:in `block in loading'
from /home/uzaif/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.6/lib/active_support/concurrency/share_lock.rb:150:in `exclusive'
from /home/uzaif/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.6/lib/active_support/dependencies/interlock.rb:11:in `loading'
from /home/uzaif/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.6/lib/active_support/dependencies.rb:37:in `load_interlock'
from /home/uzaif/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.6/lib/active_support/dependencies.rb:358:in `require_or_load'
from /home/uzaif/.rvm/gems/ruby-2.3.1/gems/activesupport-
self.table_name = 'settings.roles'