Я создал новое приложение Rails. Он полностью свежий только с одной моделью пользователя (которая создается через Devise) и модель Post, которая создается с помощью эшафота. В модели Post у меня есть столбец в базе данных, который называется user_id
.Рельсы с дизайном: проблемы с ассоциациями
Проблема в том, что user_id
в таблице Post всегда nil
(он не будет изменен на user_id
пользователя, который публикует). Я подозреваю, что это имеет какое-то отношение к Devise, но я не совсем уверен. Любые предложения о том, что делать?
user.rb
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
attr_accessible :email, :password, :password_confirmation, :remember_me
has_many :posts, dependent: :destroy
end
post.rb
class Post < ActiveRecord::Base
attr_accessible :title, :user_id
belongs_to :user
end
Gemfile
source 'https://rubygems.org'
gem 'rails', '3.2.13'
gem 'bootstrap-sass', '2.1'
gem 'devise'
group :development do
gem 'sqlite3', '1.3.5'
end
group :assets do
gem 'sass-rails', '3.2.5'
gem 'coffee-rails', '3.2.2'
gem 'uglifier', '1.2.3'
end
gem 'jquery-rails', '2.0.2'
group :production do
gem 'pg', '0.12.2'
end
gem 'will_paginate', '> 3.0'
post_controller (создать)
def create
@post = Post.new(params[:post])
respond_to do |format|
if @post.save
format.html { redirect_to @post, notice: 'Post was successfully created.' }
format.json { render json: @post, status: :created, location: @post }
else
format.html { render action: "new" }
format.json { render json: @post.errors, status: :unprocessable_entity }
end
end
end
Показать свой метод 'PostController # create' –
Вы присваиваете что-либо полю user_id? Вы можете получить идентификатор текущего пользователя от current_user.id – chrisbulmer
Добавлен метод создания. Как его назначить - в методе создания (как)? – allegutta