2014-02-12 5 views
0

Привет, ребята, я новичок в Ruby. Я пытаюсь создать форму с формой строителя Какова разница междуRuby on rails forms_for

<%=form_for @post %> 

и

<%=form_for :post %> 

ответ

2

form_for создает экземпляр form builder object:

объект

FormBuilder связан с конкретный объект модели и позволяет создавать поля, связанные с объектом модели. Объект FormBuilder является получен при использовании form_for или fields_for


@post является переменным экземпляром. :post не

Это означает, что при загрузке <%= form_for @post %>, вы заселение объект формы строитель с данными из экземпляра (что позволяет Rails поддерживать данные, когда у вас есть ошибки и т.д.)

Если вы» повторно уверены @instance_variables в Ruby, вы можете захотеть, чтобы проверить Ruby On Rails beginners' guide

+0

так что: пост? – franchez

+0

Это может быть много вещей (к сожалению, я не могу дать краткий ответ). Вот вам действительно хорошая ссылка: http://stackoverflow.com/questions/2341837/understanding-symbols-in-ruby –

+1

Я знаю только: символы: используются главным образом для определения аргументов для методов Rails (IE '<% = form_for @post, method:: post%> ' –

0

, если вы будете использовать символ: пост как

<%=form_for :post %> 

тогда это создать

<form action="/posts" method="post"> 

, если вы будете использовать экземпляр @post как

<%=form_for @post %> 

затем создать

<form action="/posts/create" class="class_name" id="id_name" method="post"> 
+0

Я думаю, когда модель представлена строкой или символом, если параметр: url не указан, по умолчанию форма будет отправлена ​​обратно на текущий URL-адрес –