无法使用railscast嵌套模型表单#196 /#197中的link_to_add_fields方法

时间:2012-02-14 12:15:13

标签: ruby-on-rails ruby activerecord web

首先,我看了Railscast #196Railscast #197

我还阅读了this和许多其他类似的问题。

我收到以下错误:

Missing partial profils/compagny_fields, application/compagny_fields with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :coffee]}. Searched in: * "/home/me/www/Myapp/app/views"

这似乎不是部分问题,因为我可以从我的部分看到puts

所以在我的模特上我有:

  

CompagnyModel:belongs_to:profil`

     

ProfilModel:has_many:compagnies,accepts_nested_attributes_for:compagnies

在我的观点中,我有:

        
    

          <%= p.label:firstname,“firstname”%>           <%= p.text_field:firstname%>         

        

          <%= p.label:lastname,“lastname”%>           <%= p.text_field:lastname%>         

  
<%= p.fields_for :compagnies do |n| %>
     
   <%= render 'compagnies_fields', :c => n %>
<% end %>
  
<%= link_to_add_fields "Add Compagny", p, :compagnies %> 
<% end %>
     

&lt;%= f.submit“save”   %GT;

最后,这是我的部分:

<p class="fields">
  <%= c.label :name, "Compagny"%><br />
  <%= c.text_field :name %><br />
  <%= link_to_remove_fields "remove", c %><br />
  <% puts "-----!-!-!-!-!-!-!-!-DEBUG-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!------" %>   
</p>

3 个答案:

答案 0 :(得分:0)

上的单引号
CompagnyModel: belongs_to :profil`

在实际的模型文件中?

调用的部分表单是保存在“profils / _compagny_fields.html.erb”还是“compagnies / _compagny_fields.html.erb”中?

<%= p.fields_for :compagnies do |n| %>
  <%= render 'compagny_fields', :c => n %>
<% end %>

尝试在控制台中构建Profil.Compagnies模型以检查它是否有效

new_profil = Profil.new
new_profil.compagnies.build

在Profil_Controller中,我认为它有一个变量@profil = Profil.new?

@profil = Profil.new
@profil.compagnies.build

views / profil / new.html.erb(或者views / profil / _form.html.erb,如果你以这种方式做表格)是否有表格

<%= form_for(@profil) do |p| %>

答案 1 :(得分:0)

我有同样的错误。您将部分“compagny_fields”命名为“compagnies_fields”,但您想渲染“compagnies_fields”。这是我的问题,也许是你的问题。

答案 2 :(得分:0)

我通过更改此

解决了这个问题
render(association.to_s.singularize + "_fields", :f => builder)

到这个

render(association.to_s , :f => builder)