2010-01-07 2 views
1

J'ai modèles de produits et de catégorie, ce que je veux faire est d'ajouter un champ de catégorie ajouter à l'intérieur nouvelle forme de produit (je veux mettre à jour au format ajax)ajouter un champ de catégorie à l'intérieur sous forme de produit dans des rails

ma forme est quelque chose comme ceci:

<fieldset> 
    <legend> 
     <%= @form_title %> 
    </legend> 
    <%= error_messages_for 'theme' , :header_message => "موارد زیر دارای اشکال می باشند، لطفا دوباره بررسی نمایید :" , :message => nil %> 
    <ol> 
     <% form_for :template , @theme do |t| %> 
     <li> 
      <%= label :theme , :نام %> 
      <%= t.text_field :name %> 
     </li> 
     <li> 
      <%= label :theme , :نام_انگلیسی %> 
      <%= t.text_field :en_name %> 
     </li> 
     <li> 
      <%= label :theme , :قیمت %> 
      <%= t.text_field :price %> 
     </li> 
     <li> 
      <%= label :theme , :قیمت_ویژه %> 
      <%= t.text_field :unique_price %> 
     </li> 
     <li> 
      <%= label :theme , :توضیحات %> 
      <%= t.text_area :description %> 
     </li> 
     <li> 
      <%= label :theme , :دسته %> 
      <% for category in Category.find(:all) %> 
      <%= check_box_tag "template[category_ids][]" , category.id , @theme.categories.include?(category) %> 
      <span class="category_name"><%= category.name %></span> 
      <br/> 
      <% end %> 
     </li> 
     <p id="template_cat"> 
     </p> 
     <p class="cat"> 
      <% fields_for "template[cat_attributes][]" , @theme do |cat_form| -%> 
      <li> 
       <%= cat_form.text_field :name %> اضافه کردن دسته جدید 
      </li> 
      <% end -%> 
     </p> 
     <li> 
      <%= label :theme , :عکس_قالب %> 
      <%= t.file_field :photo %> 
     </li> 
     <li> 
      <%= submit_tag "#{@form_title}" %> 
     </li> 
     <% end %> 
    </ol> 
</fieldset> 

dans la balise p avec le nom de la classe de chat est le code pour ajouter une nouvelle catégorie

<p class="cat"> 
    <% fields_for "template[cat_attributes][]" , @theme do |cat_form| -%> 
    <li> 
     <%= cat_form.text_field :name %> اضافه کردن دسته جدید 
    </li> 
    <% end -%> 
</p> 

son travail de manière normale si je soumets la forme, mais je veux un dd cette possibilité d'ajouter une nouvelle catégorie sans soumettre le formulaire en premier. comment puis-je faire

Répondre

1

Ce ne sera pas possible car la méthode fields_for ne crée pas une nouvelle forme, mais ne fait qu'ajouter de nouveaux <input> éléments à la forme principale, dans votre cas, le modèle de formulaire

Alors la solution est d'extraire le <%= cat_form.text_field :name %> اضافه کردن دسته جدید sous une nouvelle forme, et puisque vous voulez qu'il utilise Ajax vous devez créer un remote_form_for comme décrit dans the Rails API

Questions connexes