私は現在Sinatraで小さなアプリを構築しており、フォームデータをmysqlデータベースに保存する際に問題が発生しました。まず、twitter authを使用してアプリにログインし、datをテーブルに保存しているため、データベースへの接続が機能していることを確認できます。
フォームはシンプルです
route: '/'
<form action="/create" method="post">
<p>
<label for="">Weight</label>
<input type="text" name="weight[amount]">
</p>
<p>
<input type="submit" id="">
</p>
</form>
モデルはそのように見えます
class Weight
include DataMapper::Resource
property :id, Serial, key: true
property :amount, Float
property :is_goal, Boolean, :default => false
property :created_at, DateTime, :required => true
belongs_to :user
end
DataMapper.finalize
DataMapper.auto_upgrade!
シナトラルートは次のようになります。
post '/create' do
@weight = Weight.create(params[:weight])
if @weight.save
flash[:success] = "Its all saved now"
redirect '/'
else
flash[:failure] = "I Didnt save!"
redirect '/'
end
end
どういうわけか、フォームに入るたびにI didnt save
フラッシュが戻ってきます。これは明らかなことだと思いますが、Imがどこで間違っているのかわかりません。