ruby-on-rails - 如何使用belong_to post和membre在db中创建一个条目评论
问题描述
我有一个模型:评论两个属于一个:post 和其他:membre
我想做def create
使用两个 var@post_id
和@membre_id
如何继续使用 twoo belongs_to 做一次?
如何放置 var ?
谢谢你的帮助
def create
@comment = Comment.new(comment_params)
respond_to do |format|
if @comment.save
format.html { redirect_to @comment, notice: 'Comment was successfully created.' }
format.json { render :show, status: :created, location: @comment }
else
format.html { render :new }
format.json { render json: @comment.errors, status: :unprocessable_entity }
end
end
end
def comment_params
params.fetch(:comment, {})
end
解决方案
使用您提供的代码,尝试(我假设 membre_id 是 member_id):
@comment = Comment.new(comment_params)
@comment.member_id = @member_id
@comment.post_id = @post_id
respond_to do |format|
if @comment.save
etc...
end
不过,还有更好的方法可以做到这一点。如果你有一个 @member 和 @post 变量,你可以这样做:
@comment.member = @member
@comment.post = @post
但最好的方法是首先包含参数。在用户创建评论的地方,将两个隐藏字段添加到表单中,member_id 和 post_id。这样您就不需要自己手动分配 ID。
推荐阅读
- python - 如何从具有单列的文本文件创建数据框
- excel - 如何在 VBA excel 宏中实现单元格选择
- rust - 如何让struct持有一个线程并在它超出范围后立即销毁线程
- java - 在使用 switch 语句的文本菜单上更改输出
- javascript - 全部完成后的 Javascript 回调
- vue.js - Vue 路由中的 beforeEnter 不适用于子路由
- routes - IONIC 4 - 路由导航
- android - Android ARM C++异常调试
- javascript - 手机中的按下行为 Ionic / Angular / Cordova App
- python - 两个文件的区别