0

ここに私のコードがあります:

初期化ファイル:

require 'sequel'
DB = Sequel.connect('sqlite://data.db')

DB.drop_table?(:restaurants)
DB.create_table :restaurants do
primary_key :id
String :name
end

DB.drop_table?(:category)
DB.create_table :category do
primary_key :id
String :name
end


DB.drop_table?(:items)
DB.create_table :items do
primary_key :id
foreign_key :restaurant_id
foreign_key :category_name
String :name
Float :price
end

require_relative './restaurant'
require_relative './categories'
require_relative './item'

アプリファイル:

require_relative './models/init

p = Category.create(:name => 'Pizza')
c = Category.create(:name => 'Calazone')
pa = Category.create(:name => 'Pasta')
s = Category.create(:name => 'Salad')
d = Category.create(:name => 'Dessert')
dr = Category.create(:name => 'Drink')
si = Category.create(:name => 'Side')`

しかし、私はこのエラーが発生しています:

/home/ben/.rvm/gems/ruby-1.9.3-p385/gems/sequel-3.45.0/lib/sequel/model/base.rb:1780:in `block in set_restricted': method name= doesn't exist (Sequel::Error)
    from /home/ben/.rvm/gems/ruby-1.9.3-p385/gems/sequel-3.45.0/lib/sequel/model/base.rb:1767:in `each'
    from /home/ben/.rvm/gems/ruby-1.9.3-p385/gems/sequel-3.45.0/lib/sequel/model/base.rb:1767:in `set_restricted'
    from /home/ben/.rvm/gems/ruby-1.9.3-p385/gems/sequel-3.45.0/lib/sequel/model/base.rb:1278:in `set'
    from /home/ben/.rvm/gems/ruby-1.9.3-p385/gems/sequel-3.45.0/lib/sequel/model/base.rb:1736:in `initialize_set'
    from /home/ben/.rvm/gems/ruby-1.9.3-p385/gems/sequel-3.45.0/lib/sequel/model/base.rb:920:in `initialize'
    from /home/ben/.rvm/gems/ruby-1.9.3-p385/gems/sequel-3.45.0/lib/sequel/model/base.rb:156:in `new'
    from /home/ben/.rvm/gems/ruby-1.9.3-p385/gems/sequel-3.45.0/lib/sequel/model/base.rb:156:in `create'
    from app.rb:4:in `<main>'"

助けてください。

ありがとう

4

1 に答える 1

2

カテゴリ モデルを投稿していませんが、実際にはカテゴリ テーブル (おそらくカテゴリ テーブル) を見ていないと思います。データベース テーブルの名前をカテゴリに変更するか、Category モデルにカテゴリ テーブルを使用するように指示します。そうでない場合は、モデル コードを投稿することをお勧めします。

于 2013-03-29T08:40:17.527 に答える