После настройки моего config.ru и gemfile мой пост больше не хочет работать.
Во-первых, у меня должен быть DataMapper.setup в моем main.rb, и я не могу запускать какие-либо методы DataMapper в моем irb.
Во-вторых, всякий раз, когда я отправляю форму через POST для сохранения некоторых данных в моей базе данных, Sinatra возвращается с ...
NoMethodError at /
undefined method `each' for "asdfasdf":String
file: resource.rb
location: attributes=
line: 329
main.rb
#Required Gems
require 'sinatra'
require 'data_mapper'
DataMapper.setup(:default, ENV['DATABASE_URL'] || 'postgres://host:password!@localhost
/blog_development')
#Database Migration
class Code
include DataMapper::Resource
property :id, Serial
property :code, String, :required => true
property :translation, String
property :completed_at, DateTime
end
#Set up Migration
DataMapper.finalize
#Routes Section
get '/' do
@codes = Code.all
slim :index
end
#Get Code
get '/:code' do
@morse_code = params[:code]
slim :code
end
#POST Code
post '/' do
@code = Code.create params[:code]
redirect to('/')
end
Gemfile
source :rubygems
gem "sinatra", "~> 1.3.3"
gem "data_mapper", "~> 1.2.0"
gem "slim", "~> 1.3.4"
gem "dm-postgres-adapter", "~> 1.2.0"
config.ru
require 'bundler'
Bundler.require
require './main'
DataMapper.setup(:default, ENV['DATABASE_URL'] || 'postgres://host:password@localhost
/blog_development')
run Sinatra::Application
Обратите внимание, что asdfasdf - это текст, который я помещаю в поле ввода формы перед отправкой.
Для репо на случай, если кто-то захочет протестировать его вживую ... https://github.com/thejourneydude/morsecode а>
"asdfasdf":String
откуда берется? - person shime   schedule 18.12.2012resource.rb
и что на линии 329? Я также рекомендую вам удалить свои учетные данные БД отсюда;) - person shime   schedule 18.12.2012resource.rb
. Его нет в моем каталоге. Мой irb сообщает мне, что мне нужно выполнить DataMapper.setup, который находится в моем config.ru (если я переместу его в main.rb, ошибка исчезнет, и я смогу его использовать). Я все время думаю, что это проблема сборщика. - person thank_you   schedule 18.12.2012