добавить поле категории внутри формы продукта в рельсах - PullRequest
1 голос
/ 07 января 2010

У меня есть модели продуктов и категорий, я хочу добавить поле категории внутри, добавить новую форму продукта (я хочу обновить ее в формате ajax)

моя форма выглядит примерно так:

<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>

в теге p с именем класса cat указан код для добавления новой категории

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

работает нормально, если я отправляю форму, но я хочу добавить эту возможность, чтобы добавить новую категорию без отправки формы. как я могу это сделать

1 Ответ

1 голос
/ 07 января 2010

Это будет невозможно, поскольку метод fields_for не создает новую форму, но только добавляет новые <input> элементы в основную форму, в вашем случае шаблон форма

Таким образом, решение состоит в том, чтобы извлечь <%= cat_form.text_field :name %> اضافه کردن دسته جدید в новую форму, и, поскольку вы хотите, чтобы она использовала Ajax, вы должны создать remote_form_for, как описано в Rails API

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...