【发布时间】:2016-04-22 18:14:37
【问题描述】:
我有一个 Sinatra 应用程序,它运行一个简单的网站,用户可以在该网站上确认参加某个活动,还可以向出席者提出请求。
我正在使用 datamapper 保存到 Postgres。模型如下所示:
require 'data_mapper'
require 'dm-postgres-adapter'
class Guest
include DataMapper::Resource
property :id, Serial
property :name, String
property :attending, String
property :others, String
property :requests, String
我遇到的问题是,如果我的用户在“请求”部分使用了超过 50 个字符,那么在提交时,该条目中的所有数据(表单中的所有字段)都会完全消失并且永远不会被保存。
和
http://datamapper.org/docs/pitfalls.html
这让我得出结论,datamapper 在使用 String 类型时默认为 50 个字符。所以我尝试了他们提供的解决方案,即修改请求:
property :requests, String, :length => 255
但这样做后,我只会收到以下 sinatra 错误....
DataObjects::DataError 在/invitees
错误:类型字符变化的值太长(50)
app.rb 看起来像这样:
post '/invitees' do
Guest.create(name: params[:name], attending: params[:attending], others: params[:others], requests: params[:requests])
end
谁能帮忙???
【问题讨论】:
-
我猜你可以访问底层的 Postgres 数据库。您是否可以使用 postgres 控制台检查架构是否已正确设置?
标签: ruby postgresql sinatra datamapper