Я следую за tutorial о том, как создать веб-сайт блога Ruby-on-Rails с комментариями и тегами, и поместил мою работу на https://github.com/khpeek/jumpstart-blogger/.UnknownAttributeError on Rails сайт
Проблема заключается в том, что, когда я пытаюсь создать новую статью с тегами, как показано ниже,
Я получаю сообщение об ошибке «ActiveRecord :: UnknownAttributeError в ArticlesController # Создание» (см ниже) ,
Однако, по словам руководства, я должен в этот момент ожидают статья «идти через». articles_controller.rb
имеет «набор» метод tag_list
:
class ArticlesController < ApplicationController
include ArticlesHelper
def index
@articles = Article.all
end
def show
@article = Article.find(params[:id])
@comment = Comment.new
@comment.article_id = @article_id
end
def new
@article = Article.new
end
def tag_list=(tags_string)
end
def create
# fail
@article = Article.new(article_params)
@article.save
flash.notice = "Article '#{@article.title}' created."
redirect_to article_path(@article)
end
def destroy
@article = Article.find(params[:id])
@article.destroy
flash.notice = "Artice '#{@article.title}' deleted."
redirect_to articles_path
end
def edit
@article = Article.find(params[:id])
end
def update
@article = Article.find(params[:id])
@article.update(article_params)
flash.notice = "Article '#{@article.title}' updated."
redirect_to article_path(@article)
end
end
Далее, «to_s» метод класса «Tag» был изменен, чтобы вернуть свое название:
class Tag < ActiveRecord::Base
has_many :taggings
has_many :articles, through: :taggings
def to_s
name
end
end
Короче, я не понимаю, почему tag_list
не признан в качестве атрибута для Article
. Как я могу это исправить?
Необходимо добавить его в качестве столбца базы данных статьи - используйте миграцию. Ваш метод 'def tag_list = (tags_string)' в контроллере не похоже, что он что-то делает, и, вероятно, должен быть в модели статьи. –