2013-08-11 2 views
1

Я столкнулся с ошибкой, которую я не могу определить, потому что она работает с другой формой. Я пытаюсь добавить класс к форме - это выглядит следующим образом:Ошибка при добавлении класса в форму

<%= form_for([@post, @post.comments.build]), html: {class: 'form-horizontal'} do |f| %> 

но выдает ошибку:

syntax error, unexpected tLABEL ..., @post.comments.build]), html: {class: 'form-horizontal'} d... 

syntax error, unexpected keyword_do_block, expecting keyword_end 

Если я удалить HTML: ... то форма произведения (но выглядит дерьмовым).

Это один работает (по некоторым причинам): <%= form_for @post, html: {class: 'form-horizontal'} do |f| %>

Это, вероятно, легко исправить, но так как я новичок в программировании - я просто не понимаю;)

Спасибо заранее!

ответ

1

причина вы получаете эту ошибку, потому что вы закрывающая скобка ) в заблуждении место для помощника form_for.

Пожалуйста, попробуйте:

<%= form_for([@post, @post.comments.build], html: {class: 'form-horizontal'}) do |f| %> 

Другим вариантом является добавление пробела после form_for, так что ([@post, @post.comments.build]) и html: {class: 'form-horizontal'} становятся параметры form_for

<%= form_for ([@post, @post.comments.build]), html: {class: 'form-horizontal'} do |f| %> 
+0

Отлично! - Спасибо Vinod – tomr

0

Я думаю, что вам нужно включить опции хэш (даже если он пустой) перед HTML хэша:

<%= form_for([@post, @post.comments.build]), {}, {class: 'form-horizontal'} do |f| %> 
+0

Hey Matt - спасибо за быстрый ответ, но я боюсь, что не сделал трюк :(Я отредактировал сообщение - возможно, это помогает. – tomr

0

Я думаю, что вы действительно близки, но я думаю, что это может работать:

<%= form_for([@post, @comments]), :html => {class: 'form-horizontal'} do |f| %> 

я получил, что от этого вопроса Multiple parameters for form_for()

+0

Спасибо TMP за ответ - но оба решения не работают. Я добавил что-то в сообщение выше - может быть, это помогает? – tomr

+0

@Timo Я обновил свой ответ –

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