Я пытаюсь реализовать модель User с ассоциацией 1-ко-многим со статьями.Таким образом, я добавил модель User.rb с
class User < ApplicationRecord
has_many :articles
before_save { self.email = email.downcase }
validates :username, presence: true,
uniqueness: { case_sensitive: false },
length: { minimum: 3, maximum: 25 }
VALID_EMAIL_REGEX = /\A\S+@.+\.\S+\z/i
validates :email, presence: true,
uniqueness: { case_sensitive: false },
length: { maximum: 105 }, format: { with: VALID_EMAIL_REGEX }
end
Также добавлен own_to: user в модели Article:
class Article < ApplicationRecord
belongs_to :user
has_many :comments, dependent: :destroy
validates :title, presence: true, length: { minimum: 5 }
validates :text, presence: true, length: { minimum: 10, maximum: 400}
validates :user_id, presence: true
end
Я запустил эту миграцию
рельсы генерируют миграцию add_user_id_to_articles
и это мой файл миграции
class AddUserIdToArticles < ActiveRecord::Migration[5.2]
def change
add_column :articles, :user_id, :integer
end
end
Вот определение моей схемы.rb:
ActiveRecord::Schema.define(version: 2019_02_26_124924) do
create_table "articles", force: :cascade do |t|
t.string "title"
t.text "text"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "comments", force: :cascade do |t|
t.string "commenter"
t.text "body"
t.integer "article_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["article_id"], name: "index_comments_on_article_id"
end
create_table "users", force: :cascade do |t|
t.string "username"
t.string "email"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
end
И, наконец, мойФункция изменения в файле article_controller.rb:
def create
@article = Article.new(article_params)
if @article.save
redirect_to @article
else
render 'new'
end
end
Я запустил rails db: migrate, так что проблем не должно быть.Я видел, как некоторые люди в Stackoverflow говорят, что я должен просто добавить
@article.user_id = current_user.id
, но уже сделал это, и ничего не произошло.
Я получаю эту ошибку:
NoMethodError (неопределенный метод `user_id 'для #) Вы имели в виду?пользователь
и я не знаю, что еще попробовать.Я начинаю с Ruby on Rails, так что имейте это в виду.
Большое спасибо за чтение, надеюсь, кто-нибудь знает исправление.