我是 Rails 的新手,我一直在阅读 Michael Hartl 的教程,但我不确定我是否正确地做到了这一点。我有用户、帖子和类别:
用户可以创建帖子和类别
一个帖子只能分配给一个类别。
目前,当用户创建帖子时,他们输入类别(假设类别将始终存在于数据库中)并从那里查找类别的 ID 并将其传递给帖子创建。这就是我正在运行以创建帖子并将其分配给我的 Post_Controller 中的类别:
category_id = Category.find_by_name(post_params[:category])
@post = current_user.posts.build(title: post_params[:title], content: post_params[:content], category_id: category.id)
我的问题是:这是用两个belong_to 输入数据的正确方法吗?我已经挖掘了,我找不到一个简单的答案。对我来说,传递这样的类别 ID 似乎并不安全,但我不知道另一种方法可以做到这一点。这是我的基本模型信息(只是belong_to、has_many 等)。如果您需要更多,请告诉我:
class User < ActiveRecord::Base
attr_accessible :username, :email, :password, :password_confirmation
has_secure_password
has_many :posts
has_many :categories
class Post < ActiveRecord::Base
attr_accessible :title, :content, :category_id
belongs_to :user
belongs_to :category
class Category < ActiveRecord::Base
attr_accessible :name
belongs_to :users
has_many :posts
validates :name, presence: true, uniqueness: true, length: {maximum:30}
validates :user_id, presence: true