J'essaye de faire un service simple de gestion de pièce. Les chambres ont ces propriétés:Comment travailler avec des cases à cocher avec DataMapper et Sinatra?
class Room
include DataMapper::Resource
validates_is_unique :number
property :id, Serial
property :number, Integer
property :guest, String
property :status, Enum[ :free, :occupied ], :default => :free
end
Puis-je créer une nouvelle salle comme celle-
post '/new' do
content_type :json
@room = Room.new :guest => params[:guest],
:number => params[:number],
:status => params[:status]
if @room.save
{ :number => @room.number, :guest => @room.guest, :status => @room.status }.to_json
end
end
par ce formulaire haml
%form#new_message{:action => '/new', :method => 'post'}
%p
%input{:type => "text", :id => "number", :name => "number"}
%input{:type => "text", :id => "guest", :name => "guest"}
%input{:type => "checkbox", :id => "status", :name => "status", :value => "occupied"}
%input{:type => "submit", :value => "post"}
Lorsque la case est cochée le: état est « occupé "mais quand je le laisse décoché l'objet ne sauvera pas. Je pensais que cela fonctionnerait car il est par défaut "libre" mais non ...
Oh, c'est pourquoi ... Eh bien cela fonctionne. Cool. Je vous remercie. Je pensais en faire un booléen mais je préfère appeler room.status (disponible/occupé) que room.free (true/false). – schwift