Я относительно новичок в рельсах и занимаюсь простейшим: ассоциируйте пользователей и сообщения. Я читал this, но то, что больше, чем это сделать, мне нужно сделать, чтобы заставить его работать (или это единственное) ?:Rails: Как настроить активные ассоциации записей?
class User < ActiveRecord::Base
has_many :posts, :dependent => :destroy
end
class Post < ActiveRecord::Base
belongs_to :user
end
Update: я не могу заставить его работать. Когда я делаю сообщение с подписанным пользователем, я получаю false, когда я делаю @user.posts.any?
в консоли. Мой код:
post.rb
class Post < ActiveRecord::Base
attr_accessible :title, :user_id
belongs_to :user
before_create :default_values
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
20130320162700_create_posts.rb
class CreatePosts < ActiveRecord::Migration
def change
create_table :posts do |t|
t.string :title
t.integer :user_id
t.timestamps
end
end
end
Выглядит хорошо для меня. Пока таблица 'users' имеет столбец' post_id'. Вы получаете какие-либо ошибки? – Sam
это должно работать, вы должны иметь возможность называть '@ user.posts', чтобы получить все сообщения для данного пользователя или @ post.user, чтобы получить пользователя для данного сообщения. У вас какие-то ошибки?! – sameera207
Я не получаю никаких ошибок, но я получаю '[]', если я делаю @ user.posts, даже если я сделал несколько сообщений. Но будет ли таблица 'users' иметь' post_id'? Разве это не просто таблица 'posts', которая будет иметь' user_id'? – allegutta