Rails - Affichage des références de clé étrangère dans un formulaire
Je suis en train de faire un exercice simple avec les deux modèles. Le Sport et les Équipes, définie comme
rails g échafaudage sport nom:integer rails g échafaudage nom de l'équipe:integer fans:integer sport:références
(Note: La raison pour laquelle je suis à l'aide d'échafaudage est rapidement des prototypes afin que je puisse apprendre et expérimenter avec les pièces que je ne suis pas familier avec encore)
Problème est que mon "sport" (c'est à dire la référence de clé étrangère) se montre comme suit
Il y a donc cet étrange #<blahl blah>
notation...
<%= form_for(@team) do |f| %>
<% if @team.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@team.errors.count, "error") %> prohibited this team from being saved:</h2>
<ul>
<% @team.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :name %><br />
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :fans %><br />
<%= f.number_field :fans %>
</div>
<div class="field">
<%= f.label :sport %><br />
<%= f.text_field :sport %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
J'ai essayé de changer une ligne de @team.sport.name
mais il en résulte une erreur undefined method 'Ice Hockey' for #<Team:0x3e7e040>
... des idées comment faire pour afficher correctement le nom à partir d'ici??
source d'informationauteur Ricky
Vous devez vous connecter pour publier un commentaire.
Vous utilisez un
text_field
pour le référencement d'un objet existant, unselect
avec des Sports comme des options serait plus approprié ici.C'est là où il doit être changé:
:
La
f.select
va générer une zone de sélection dans le code HTML, les options de moi tous les sports dans votre base de données.Un peu de documentation à ce sujet:
D'une façon plus propre serait de définir une variable
@sports
dans votre contrôleur et de l'appeler ensuite à votre point de vue:Informations supplémentaires: Si vous voulez "pré-sélection" une option pour la sélectionner, vous devez passer en tant que second argument de la
options_for_select
helper: