RoR: окончание form_tag ошибка компиляции - PullRequest
2 голосов
/ 23 июля 2010

Как правильно использовать тег формы, я получаю ошибку компиляции, когда добавляю конец. Когда я вытащу это, оно работает, я должен просто закончить форму HTML? Или что-то не так с моим синтаксисом?

   <html>
     <head>
      <title>
      Databse connections
      </title>
     </head>
     <body>
      <%= form_tag ( :action => 'create' )%>
       <%= text_field(:album, :title) %>
       <%= text_field(:album, :artist) %>
       <%= text_field(:album, :genre) %>
       <%= datetime_select(:album, :release_date) %>
       <%= submit_tag("Create") %>  
      <% end %>

     </body>
    </html>

1 Ответ

3 голосов
/ 23 июля 2010

Если вы используете form_tag без блока, он создаст только открывающий тег. Если вы хотите создать оба тега, вам нужно передать ему блок, который вы пытаетесь сделать, но вам не хватает ключевого слова do после form_tag(...):

<% form_tag ( :action => 'create' ) do %>
  <%= text_field(:album, :title) %>
  <%= text_field(:album, :artist) %>
  <%= text_field(:album, :genre) %>
  <%= datetime_select(:album, :release_date) %>
  <%= submit_tag("Create") %>  
<% end %>

Без do для запуска блока end является синтаксической ошибкой. Без end в вашем текущем синтаксисе вы не указываете, что поля должны быть внутри формы (но они в конечном итоге станут частью вашей формы, потому что вы не закрываете свой тег формы, созданный без блоков form_tag перед указанием их).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...