2013-04-13 5 views
1

Привет, ребята, у меня есть демонстрация приложения. В демо, основной эстафетный звонок «контакт». теперь я пытаюсь добавить новый «адрес» модели (с 5 атрибутами) в «contact # show'page». Вот мой contactcontroller определить показатьSyntaxError после добавления новой модели

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

А вот где я пытаюсь показать «адрес» в поле зрения/контакты/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' 

Может кто-нибудь сказать мне, где я делаю ошибку, пожалуйста, большое спасибо за помощь :)

ответ

0

Вы пропускаете конец на шаблоне Еврорадио

Он должен выглядеть следующим образом

<%= 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 блока

+0

Спасибо человека, это работает. Кстати, первый конец для этого, если на второй строке? –

+0

Да, теги erb просто содержат ruby, поэтому, если вы открываете 'if', вы должны закрыть его с помощью' end', то это применимо и к блокам, то есть если вы не используете 'haml': D. –

Смежные вопросы