рельсы simple_form две модели - PullRequest
1 голос
/ 14 мая 2011

Я начинаю использовать simple_form для приложения rails, и, преобразуя некоторые из моих форм, я наткнулся на одну, в которой есть две модели, с которыми она работает, что-то вроде встроенной формы.Это возможно с simple_form?

 <% simple_form_for :topic, :url => forum_topics_path do |t| %>
 <%= t.input :name, :label => 'Topic' %></p>

 <p>First Post:<br/></p> 
 Title: <%= text_field :post, :title %> <--- this is where i start having problems
 Body: <%= text_area :post, :body %>
 <%= t.submit 'Save' %>

Спасибо

Ответы [ 2 ]

8 голосов
/ 14 мая 2011

Использование simple_fields_for:

<%= simple_form_for :topic, :url => forum_topics_path do |topic_builder| %>
  <%= topic_builder.input :name, :label => 'Topic' %>
  <%= topic_builder.simple_fields_for :post do |post_builder| %>
    <p>First Post:</p> 
    <%= post_builder.input :title, :input_html => { :size => 30 } %>
    <%= post_builder.input :body, :as => :text, :input_html => { :rows => 20, :cols => 50, :class => 'resizable' } %>
  <% end %>
  <%= topic_builder.submit 'Save' %>
<% end %>

Примечания

  • Обратите внимание на символ = в <%= simple_form_for ... и <%= simple_fields_for (требуется в Rails 3.x)

  • Удалены тексты "Заголовок:" и "Тело:". Используйте метку, сгенерированную для входных данных, и при необходимости стилизуйте их местоположение с помощью CSS.

  • Добавлен пример использования input_html

0 голосов
/ 15 августа 2011

Есть другой подход, который я использую, и он прекрасно работает.Райан Бейтс (RailsCasts) создал драгоценный камень, чтобы справиться с этим.

Подробнее см. https://github.com/reu/simple_nested_form.

...