0

在我的评论视图页面 (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,以便它可以创建上面显示的所需关系?这是一个奇怪的情况,因为按钮位于实际的评论页面上,但由于按钮使用不同的控制器将一行写入不同的表,所以按钮无法查看/找到评论。

谢谢!-b

添加视图:

 <%= link_to image_tag('star.png', :size => "16x16", :align => "right"), {:controller => 'reposts', :action => 'create', :id => @comment} %>

该 link_to 将我发送到 localhost/reposts?id=1 并且在 Reposts 表上没有创建任何内容。

4

1 回答 1

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' %>

感谢大家的时间和帮助!

于 2013-05-31T21:58:55.383 回答