2010-03-12 3 views
1

У меня действительно простое приложение Rails. В основном статья с комментариями. Я хочу, чтобы страница статьи отображала статью, комментарии под ней, а затем текстовое поле для ввода комментария и кнопку отправки, чтобы отправить его.Форма отправляется, когда страница загружается

У меня все работает, кроме одной (большой) проблемы. Когда страница загружается .. example.com/article/1 пустой комментарий отправляется в базу данных.

Я исправил это, включив в модель комментариев «validates_presence_of: body». Но это приводит к следующему изображению при загрузке страницы:

alt text

Это мой код, кстати:

def show 
@place = Article.find(params[:id]) 
@comment = Article.find(params[:id]).comments.create(params[:comment]) 

respond_to do |format| 
    format.html # show.html.erb 
    format.xml { render :xml => @article } 
end 
    end 

и

<% form_for([@article, @comment]) do |f| %> 
    <p> 
    <%= f.label :commenter %><br /> 
    <%= f.text_field :commenter %> 
    </p> 
    <p> 
    <%= f.label :body %><br /> 
    <%= f.text_area :body %> 
    </p> 

    <p> 
    <%= f.submit "Create" %> 
    </p> 
<% end %> 

ответ

2

Это потому, что вы сделали создать ,

Создать попытку сохранить объект и как недействителен, генерируется ошибка.

Сделано: @comment = Article.find(params[:id]).comments.build(params[:comment])

Фикс вашу проблему я думаю

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