2011-03-20 1 views
0

Salut Je suis assez nouveau avec Ruby on Rails, et suis tombé sur ce problème.forme Ruby On Rails avec des entiers titres au lieu de chiffres dans une goutte-select liste

J'ai 4 tables et 1 qui a trois autres qui y sont connectés.

  1. Sportcategories - nom de chaque catégorie
  2. Sport - Nom de chaque sport
  3. Clubs - Nom de chaque club
  4. Résultats, t.integer "sportcategory_id" t.integer "sport_id" t.integer "club_id"

J'ai réussi à créer un formulaire d'édition simple avec text_field pour chaque champ des résultats. Mais comment puis-je obtenir les noms des entiers au lieu des nombres? J'ai fait en sorte que SportCat, Sports et clubs a beaucoup de résultats et que les résultats leur appartiennent tous.

Ceci est mon fichier du contrôleur pour obtenir des résultats avec modifier & mise à jour

def edit 
    @result = Price.find(params[:id]) 
    end 

    def update 
    @price = Price.find(params[:id]) 

    respond_to do |format| 
     if @price.update_attributes(params[:price]) 
     format.html { redirect_to(@price, :notice => 'Price was successfully updated.') } 
     format.xml { head :ok } 
     else 
     format.html { render :action => "edit" } 
     format.xml { render :xml => @price.errors, :status => :unprocessable_entity } 
     end 
    end 

    end 

Et la deuxième question pourrait répondre à la première question, mais je veux être en mesure de choisir parmi une liste déroulante de tous les disponibles catégories, les sports et les clubs avec leur nom réel, puis passez le bon ID lorsque je le mets à jour.

Répondre

4

Vérifiez le formulaire Rails sélectionnez aide

http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-select

<%= form_for(@result) do |f| %> 
    <div class="field"> 
    <%= f.label :sportcategory_id%><br /> 
    <%= f.select :sportcategory_id, @sportcategories.map {|s| [s.name, s.id]} %> 
    </div> 
    <div class="field"> 
    <%= f.label :sport_id %><br /> 
    <%= f.select :sport_id, @sports.map {|s| [s.name, s.id]} %> 
</div> 
<div class="field"> 
    <%= f.label :club_id %><br /> 
    <%= f.select :club_id, @clubs.map {|c| [c.name, c.id]} %> 
</div> 
<div class="field"> 
    <%= f.label :result %><br /> 
    <%= f.text_field :result %> 
</div> 
<div class="actions"> 
    <%= f.submit %> 
</div> 

<% end%>

Get @sportcategories, @sports, @clubs dans vos actions de contrôleur.

+0

Merci beaucoup !!! J'adore cette langue ... – Philip

Questions connexes