web-dev-qa-db-fra.com

Rails - Simple_Form, inclure un objet nommé vide dans une collection sur Nouveau et modifier

J'ai un simple_form que j'essaie de devoir toujours inclure un élément vierge, car une valeur "nil" dans ce champ a une signification particulière dans cette base de données. Afin de rendre cela plus évident pour les utilisateurs finaux, je souhaite également le titer avec quelque chose dans le sens de "(sélectionnez-le si aucun)".

Je le fais actuellement, mais il n'enserve que l'élément "vide" lors de la création d'un nouvel objet, pas lors de la modification d'une.

# _child_form.html.erb

<%= simple_form_for @child do |f| %>
  <%= f.input :first_name %>
  <%= f.input :last_name %>
  <%= f.association :parent, :collection => @parents, :Prompt => "(select if none)" %>

  <%= f.button.submit %>
<% end %>

.

# child_controller.rb

def new
  @child = Child.new
  @parents = Parent.all
end

def edit
  @child = Child.find(params[:id])
  @parents = Parent.all
end
25
bdx

Vous voulez utiliser :include_blank, ne pas :Prompt

<%= f.association :parent, :collection => @parents, :include_blank => "(select if none)" %>

la documentation

58
deefour