2013-06-10 5 views
1

Я хочу добавить Авторов к моим статьям и:Rails 3.2 неизвестно неизвестный атрибут: AUTHOR_ID

unknown attribute: author_id 

контроллер:

def create 
    @article = current_user.articles.new(params[:article]) 
    @article.save 
flash.notice = "Article '#{@article.title}' Posted!" 
    redirect_to article_path(@article) 

model1:

class Author < ActiveRecord::Base 
    authenticates_with_sorcery! 
    has_many :articles 
    validates_confirmation_of :password, message: "should match confirmation", if: :password 
end 

model2:

class Article < ActiveRecord::Base 
    attr_accessible :title, :body, :tag_list, :image 
belongs_to :author 
has_many :taggings 
has_many :tags, through: :taggings 
has_attached_file :image, :default_url => '/no_image.jpg' 

end 

И, к сожалению я понятия не имею, что случилось

////

В статье модели следует использовать author_id потому, что автор имеет много статьи. user_id будет использоваться, чтобы указать каждую статью к конкретному автора

теперь я получил это:

uninitialized constant Article::AuthorId 
+0

Пожалуйста, проверьте в вашем дб/схеме .rb, что в статьях есть столбец «author_id» –

ответ

1

Вам нужно добавить AUTHOR_ID в таблицу базы данных по миграции:

class AddAuthorToArticle < ActiveRecord::Migration 
    def change 
    add_column :articles, :author_id, :integer 
    end 
end 
+0

Теперь он работает. огромное спасибо – sebmar

1

Вы можете добавить AUTHOR_ID к вашему attr_accessible списку.

1

В модели статьи вы должны использовать author_id, потому что у автора много статей. user_id будет использоваться для указания каждой статьи конкретному автору

1

Добавить authors_attributes в ваш attr_accessible у вас Модель автора. Удостоверьтесь, что вы также ссылаетесь на столбцы в миграциях.

В ваших статьях миграционным вы должны иметь такую ​​строку:

t.references :author