1

大家好,我有一个应用程序调用演示。在演示中,主脚手架调用“联系人”。现在我正在尝试在“contact#show”页面中添加一个新模型“地址”(具有 5 个属性)。这是我的联系人控制器定义显示

def show
    @contact = Contact.find(params[:id])
    @addresses = @contact.addresses.paginate(page: params[:page])
end 

这是我试图在 view/contacts/show.html.erb 中显示“地址”的地方

<%= form_for(@contact) do |f| %>
      <% if @contact.addresses.any? %>
      <h3>Addresses (<%= @contact.addresses.count %>)</h3>
      <ol >
        <%= render @addresses %>
      </ol>
      <%= will_paginate @addresses %>
      <% end %>
<%= link_to 'Edit', edit_contact_path(@contact) %> 
<%= link_to 'List', contacts_path %>

这是视图/地址/_address.html.erb(我不知道如何显示地址的所有属性,所以我只使用'address.all')

<li>
  <span class="content"><%= address.all %></span>
</li>

当我启动服务器并单击“显示”链接机器时,会给我错误消息,例如

SyntaxError in Contacts#show
ActionView::Template::Error (/media/sf_VM_working/demo/app/views/contacts/show.html.erb:38: syntax error, unexpected keyword_ensure, expecting keyword_end
/media/sf_VM_working/demo/app/views/contacts/show.html.erb:40: syntax error, unexpected $end, expecting keyword_end):
    35: <%= link_to 'Edit', edit_contact_path(@contact) %> 
    36: <%= link_to 'List', contacts_path %>
  app/controllers/contacts_controller.rb:14:in `show'

谁能告诉我我哪里出错了,非常感谢你的帮助:)

4

1 回答 1

0

您的 erb 模板缺少结尾

它应该看起来像这样

<%= form_for(@contact) do |f| %>
  <% if @contact.addresses.any? %>
    <h3>Addresses (<%= @contact.addresses.count %>)</h3>
      <ol>
        <%= render @addresses %>
      </ol>
    <%= will_paginate @addresses %>
  <% end %>
<% end %> 
<%= link_to 'Edit', edit_contact_path(@contact) %> 
<%= link_to 'List', contacts_path %>

form_for注意块的结束端

于 2013-04-13T15:19:58.493 回答