【发布时间】:2011-02-06 22:39:22
【问题描述】:
我有以下型号:
DB.create_table :teams do
primary_key :id
column :name, :text, :unique=>true
end
DB.create_table :players do
primary_key :id
column :name, :text, :unique=>true
column :position, :text
foreign_key :team_id
end
class Team < Sequel::Model
plugin :json_serializer
one_to_many :players
end
class Player < Sequel::Model
plugin :serialization, :json
many_to_one :teams
end
我的完整代码看起来像
require 'rubygems'
require 'sequel'
require 'sinatra'
require 'db' #model file
require 'thread'
require 'json'
require "sinatra/reloader" if development? # reload
before do
@teams = Team.all
end
get '/teams/:id' do |id|
@team = Team[id]
haml :team_view
end
post '/teams/?' do
Team.create(:name => 'FC Barcelona')
#here: Read error: #<NoMethodError: undefined method `bytesize' for [:name, "FC Barcelona"]:Array>
end
我想错了吗?如何正确地做到这一点? 你能给我一些工作的例子吗? 如何处理我要发布的 JSON 数据?
谢谢!
【问题讨论】:
-
什么意思?
-
我不确定 JSON 与您的问题/问题有什么关系。
-
您不应该在 Model.new 块中调用 save 。相反,使用 create 而不是 new(create 也需要一个可选块)。