以下は、動作する Rails std フォームです。
<div id="content-form">
<%= form_for @passion, url: passion_path do |f| %>
<%#= render :partial => "form", :f => f %>
<div class="alternate">
<%= f.label "Status" %>
<%= f.text_field :status %>
</div>
<% end %>
</div>
次に、次のようにパーシャルを抽出し_form.html.erb
ます。
<div class="alternate">
<%= f.label "Status" %>
<%= f.text_field :status %>
</div>
フォームを次のように更新します。
<div id="content-form">
<%= form_for @passion, url: passion_path do |f| %>
<%= render :partial => "form", :f => f %>
<% end %>
</div>
f
しかし今、これは変数について不平を言うエラーをスローします。
undefined local variable or method `f' for #<#<Class:0x0000012d51d3e8>:0x0000012d796ef8>
Extracted source (around line #2):
1: <div class="alternate">
2: <%= f.label "Status" %>
3: <%= f.text_field :status %>
4: </div>
どうしてこれなの?そのかなりRailsの基本。
@passion
リソースが特異であることを考慮する必要があります。すなわちresource :passion
(ユーザー has_one 情熱)
そのため、明示的に使用する必要url: passion_path
がありform_for ...
ます。
ところで、Rails 3.2.9 を使用して