2010-11-29 7 views
1

Ich habe ein Modell wie folgt aus:Datamapper Update Enum-Wert durch Form

class Project 
    include DataMapper::Resource 
    property :id, Serial 
    property :title, String 
    property :slug, String 
    property :status, Enum[:open, :closed ], :default => :open 
    has n, :issues 
end 

ich eine Ansicht erstellt haben den Projektstatus zu aktualisieren:

<form action="/project/update" method="post" id="project"> 
     <label for="status">Status 
      <select id="status"> 
       <option value="0" 
       <% if(@project.status == :open) %> 
        selected="selected" 
       <% end %> 
       >Open</option> 
       <option value="1" 
       <% if(@project.status == :closed) %> 
        selected="selected" 
       <% end %> 
       >Closed</option> 
      </select> 
     </label> 
    </form> 

Hier ist die Route:

post '/project/update' do 
      @project = Project.get(params[:project_id]) 
      @project.update(:title => params[:title]) 
    end 

Welche Werte muss das Formular an die Route übergeben, um den Status zu aktualisieren? und wie sollte die Route in diesem Fall aussehen?

Danke,

Antwort

2

„offen“ und „geschlossen“ - sie werden automatisch auf Symbole umgewandelt werden.