Проблема с преобразованием form_tag в рельсы - PullRequest
2 голосов
/ 23 марта 2010

Я новичок в ruby ​​и rails, и у меня возникла проблема с Beginining Ruby on Rails Ecommerce. (Да, это старая книга).

У меня есть 2 набора кодов для просмотра:

new.html.erb:

<%= form_tag :action=> 'create' do -%>
<%= render :partial => 'form' %>
 <%= submit_tag 'Create' %>
 <%= end -%>

<% link_to 'Back', :action => 'index' %>

_form.html.erb:

<% error_messages_for 'supplier' %>

<p><label for="supplier_first_name">First Name</label><br/>
<%= text_field 'supplier', 'first_name' %></p>

<p><label for="supplier_last_name">Last Name</label><br/>
<%= text_field 'supplier', 'last_name' %></p>

Но это не будет отображаться, хотя я добавил опцию do. Он продолжает давать мне эту ошибку:

C:/rails/emporium/app/views/admin/supplier/new.html.erb:1: syntax error, unexpected ')'
...orm_tag :action=> 'create' do ).to_s)
...                               ^
C:/rails/emporium/app/views/admin/supplier/new.html.erb:4: syntax error, unexpected keyword_end
; @output_buffer.concat(( end ).to_s)
                             ^
C:/rails/emporium/app/views/admin/supplier/new.html.erb:5: syntax error, unexpected tIVAR, expecting ')'
@output_buffer.concat "\n"
              ^
C:/rails/emporium/app/views/admin/supplier/new.html.erb:7: syntax error, unexpected keyword_ensure, expecting keyword_end
C:/rails/emporium/app/views/admin/supplier/new.html.erb:9: syntax error, unexpected $end, expecting ')'

Может кто-нибудь подсказать, как это исправить, поскольку я еще не нашел ответ от Google.

Спасибо

Gigg

1 Ответ

5 голосов
/ 23 марта 2010

Похоже, у вас <%= %> и <% %> перепутаны в нескольких местах.Вам нужно использовать <% %> с form_tag и <%= %> с link_to и error_messages_for.Последние два метода возвращают свои выходные данные, в то время как form_tag автоматически добавляет свои выходные данные в выходной буфер (что обычно верно для любого помощника, который принимает блок).1013 * new.html.erb:

<% form_tag :action => create do %>
<%= render :partial => "form" %>
<%= submit_tag "Create" %>
<% end %>

<%= link_to "Back", :action => "index" %>

_form.html.erb:

<%= error_messages_for :supplier %>
...