SinatraでDatamapperを使用すると、テキストプロパティを簡単に保存できます。
DataMapper::setup(:default, "sqlite3://#{Dir.pwd}/tailor.db")
class Person
include DataMapper::Resource
property :id, Serial
property :name, String, :required => true
property :height, String, :required => false
end
DataMapper.finalize.auto_upgrade!
...
put '/:id/edit' do
p = Person.get params[:id]
p.name = params[:name]
p.height = params[:height]
p.save
end
そしてビュー:
%form
%input{:type => 'text', :name => 'name'}
%input{:type => 'text', :name => 'height'}
%input{:type => 'submit', :value => 'Save'}
そよ風:type => 'text'
です。ただし、チェックボックスを使用してブール値()を設定しようとすると問題が発生しproperty :test, Boolean, :required => false
ます。この質問は似ていますが、単純なブール値を実行する方法については説明していません。
さらに、文字列を受け入れない値を設定する最も簡単な方法は何ですか?1つの選択肢を許可する選択として、または複数の選択肢を許可するラジオボタンのセットとして、事前定義されたオプションのセットだけを設定しますか?
編集:
私はチェックボックスを見つけました:
p.bool = !params[:bool].nil?
とビューで:
%input{:type => 'checkbox', :name => 'bool', :value => "#{@bool}", :checked => @p.bool}