というページがあり、と/index
を追加できます。ページは空白で始まりますが、クリックしてフォームの 1 つを動的に表示できるリンクが側面にあります。これらのフォームは、独自のパーシャルにあります。House
Dog
この質問/例では、Dog モデルを使用します。Aは aDog
に属しHouse
ます。
class Dog
attr_accessible :name, :primary_color, :secondary_color, :house_id.........
belongs_to :house
end
犬コントローラー
def new
@dog = Dog.new
respond_to do |format|
format.js
end
end
Dogs/_form.html.erb
<%= simple_form_for(@dog, :remote => true) do |f| %>
<%= render :partial => "shared/error_message", :locals => { :f => f } %>
<%= f.input :name %>
<%= f.input :primary_color %>
<%= f.input :secondary_color %>
<%= f.association :house, :prompt => "Select a House" %>
<%= f.button :submit, 'Done' %>
<% end %>
ページコントローラー
def index
respond_to do |format|
format.html
end
end
ページ/index.html.erb
<li><%= link_to "Dog", new_dog_path, :remote => true %></li>
<div id="generate-form">
</div>
犬/new.js.erb
$("#generate-form").html("<%= escape_javascript(render(:partial => 'dogs/form', locals: { dog: @dog })) %>");
ただし、犬を追加している途中で、続行する前に家を追加する必要がある場合があります。現時点では、それを行うと、犬のフォーム全体が消去されます. 他のフォームに切り替えるときに、これらのフィールドの進行状況をどのように保存しますか? ユーザーがページを離れたときはどうなりますか?