在我的评论视图页面(show.html)上,我有一个按钮,当点击它时,将在另一个名为Repost的表中创建一行(它有一个reposts_controller和一个repost模型)。但是,当我点击评论节目页面上的图标时,我收到以下错误:
Couldn't find Comment without an ID
这是RepostsController:
class RepostsController < ApplicationController
def create
@comment = Comment.find(params[:id])
@repost = @comment.reposts.build(params[:comment])
@repost.user = current_user
if @repost.save
#flash[:success] = "Post created!"
redirect_to root_url
else
render 'activities'
end
end
end
我知道问题是什么,但我正在努力解决问题。 CommentsController可以轻松找到要在显示页面上显示的注释。但是,如何将显示页面中的id发送到RepostsController,以便它可以创建上面显示的所需关系?这是一个奇怪的情况,因为按钮是 on 实际的评论页面,但由于该按钮使用不同的控制器将一行写入另一个表,该按钮无法查看/找到评论。
谢谢! -b
添加了视图:
<%= link_to image_tag('star.png', :size => "16x16", :align => "right"), {:controller => 'reposts', :action => 'create', :id => @comment} %>
那个link_to将我发送到localhost / reposts?id = 1并且Reposts表上没有创建任何内容。
答案 0 :(得分:0)
以下代码最终正常运行:
class RepostsController < ApplicationController
def index
@reposts = Repost.all
end
def create
@repost= Repost.new("comment_id" => params[:comment_id],"user_id" => params[:user_id])
@content = @repost.comments.content
if @repost.save
#flash[:success] = "Post created!"
redirect_to root_url
else
render 'activities'
end
end
end
<%= link_to image_tag('purple_star.png', :size => "16x16", :align => "right"), {:controller => 'reposts', :action => 'create', :comment_id => @comment, :user_id => @comment.user}, :title=> "Pass it on!", :method=>'post' %>
感谢大家的时间和帮助!