获取错误消息
用户必须存在
我什么时候尝试创建一个新帖子。
我首先安装了friendly_id gem,然后我安装了devise gem并创建了一个设计用户模型。之后我生成了设计视图。从那里我为Post创建了一个脚手架,标题描述体和slug
我在帖子模型中创建了belongs_to :user
,在用户模型中创建了has_many :posts
。然后我生成了一个生成此的迁移。
class AddUserReferenceToPosts < ActiveRecord::Migration[5.1]
def change
add_reference :posts, :user, foreign_key: true
add_foreign_key :posts, :users
end
end
我知道我可以进入后期模型并将其更改为
belongs_to :user, optional: true
通过错误消息,但我进入终端并使用
创建了一个用户u = User.create(email: "dave@gmail.com", password: "password")
成功登录,我仍然收到错误消息。在我做错的事情上需要一些帮助。
答案 0 :(得分:0)
您需要在用户和帖子之间进行协商,这样您就无法在没有父级的情况下创建孩子!你需要先创建用户然后你可以在控制台irb:User.create!(名称:&#34;名称&#34;,&#34;任何其他字段&#34;)中创建帖子使用,然后像这样创建帖子irb:Post.create!(文字:&#34;一些内容&#34;,user_id:1)这将为用户注释创建帖子假设您将创建的用户ID为1也对不起来我的手机并且将会发布
答案 1 :(得分:0)
您必须更改您的posts控制器,并将此代码添加到new和create动作中。
def new
@post = current_user.posts.build
end
def create
@post = current_user.posts.build(post_params)
...
end
答案 2 :(得分:0)
您必须将外键参数添加到许可列表:
private
def posts_params
params.require(:post).permit(:your_posts_params, :user_id)
end
end