2015-01-26 4 views
-1

Я начинающий в рельсах, поэтому я начал следить за учебником на http://guides.rubyonrails.org/getting_started.html Теперь я застрял на части 6.4, когда вам нужно сделать комментарий, но я не могу понять, в чем проблема. Когда я хочу, чтобы создать комментарий им получать эту ошибку и о да Я на окнахNoMethodError в CommentsController # create

NoMethodError в CommentsController # создать

неопределенный метод `название» для # Комментарий: 0x88e4038

это мой комментарий контроллер

class CommentsController < ApplicationController 
http_basic_authenticate_with name: "dhh", password: "secret", only: :destroy 
    def create 
    @article = Article.find(params[:article_id]) 
    @comment = @article.comments.create(comment_params) 
    redirect_to article_path(@article) 
    end 

    def destroy 
    @article = Article.find(params[:article_id]) 
    @comment = @article.comments.find(params[:id]) 
    @comment.destroy 
    redirect_to article_path(@article) 
    end 

    private 
    def comment_params 
     params.require(:comment).permit(:commenter, :body) 
    end 
end 

Это мой show.html.erb

<p> 
  <strong>Title:</strong> 
  <%= @article.title %> 
</p> 
  
<p> 
  <strong>Text:</strong> 
  <%= @article.text %> 
</p> 
  
<h2>Comments</h2> 
<%= render @article.comments %> 
  
<h2>Add a comment:</h2> 
<%= form_for([@article, @article.comments.build]) 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 %> 
  </p> 
<% end %> 
  
<%= link_to 'Edit Article', edit_article_path(@article) %> | 
<%= link_to 'Back to Articles', articles_path %> 

comment.html.erb

<p> 
  <strong>Commenter:</strong> 
  <%= comment.commenter %> 
</p> 
  
<p> 
  <strong>Comment:</strong> 
  <%= comment.body %> 
</p> 
  
<p> 
  <%= link_to 'Destroy Comment', [comment.article, comment], 
               method: :delete, 
               data: { confirm: 'Are you sure?' } %> 
</p> 

и это маршрут

Rails.application.routes.draw do 

    resources :articles do 
    resources :comments 
    end 
    root 'welcome#index' 
end 
+0

перезагрузите сервер? 'rails s' – Kokizzu

+0

Покажите мне ваш контент модели' Article' – Kokizzu

+0

, вы повторно запускаете миграцию после изменения моделей? – Kokizzu

ответ

2

Я посмотрел на учебник и комментарий модель не имеет названия атрибута. Рельсы жалуется, потому что вы пытаетесь проверить атрибут «название» в модели Комментарий:

validates :title, presence: true, length: { minimum: 5 } 

Удалить эту проверку.

+0

Оу людей это WORKSSS .. THX за помощь !!!! – Yazuri

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