【问题标题】:Getting the title of the next comment获取下一条评论的标题
【发布时间】:2014-05-25 01:53:48
【问题描述】:

在我的 cmets 显示页面的底部,我有一个指向下一条评论的链接。问题是我无法获得下一条评论的标题。

这是 Comment 模型中的函数:

def next
  post.comments.where("id > ?", id).order("id ASC").first
end

这里是 cmets 控制器:

def show 
  @post = Post.find(params[:post_id])
  @comment = Comment.find params[:id]
  @commentnext = @post.comments.find(params[:id])
end    

这里是链接:

<%= link_to (???), post_comment_path(@post, @commentnext.next) %>

我试过了:

<%= link_to "#{@comment.title}", post_comment_path(@post, @commentnext.next) %>

但这给了我评论的标题。

【问题讨论】:

  • next 方法放在哪里?为什么不使用链接文本@commentnext.title?可能我无法正确理解一个问题。
  • 在 cmets 模型中
  • 我猜你打错了。根据您的问题,链接文本应类似于 "#{@commentnext.title}""#{@commentnext.next.title}"。好像您尝试使用先前评论的标题。

标签: ruby-on-rails ruby-on-rails-4


【解决方案1】:

假设@commentnext.next 是您所指的“下一条评论”,@commentnext.next.title 可能会给您下一条评论的标题。

<%= link_to @commentnext.next.title, post_comment_path(@post, @commentnext.next) %>

如果 @commentnext.next 返回一个 id,请在您的控制器中使用以下内容:

def show 
  @post = Post.find(params[:post_id])
  @comment = Comment.find params[:id]
  @commentnext = @post.comments.find(params[:id])
  @next_title = Comment.find(@commentnext.next).title
end

然后在你看来:

<%= link_to @next_title, post_comment_path(@post, @commentnext.next) %>

这两种解决方案中的一种可能会对您有所帮助。

【讨论】:

    【解决方案2】:

    来自评论:只需使用您链接的同一对象:

    <%= link_to @commentnext.next.title, post_comment_path(@post, @commentnext.next) %>
    

    【讨论】:

    • 感谢您的帮助:)
    猜你喜欢
    • 2012-07-15
    • 2020-01-09
    • 2016-03-21
    • 2016-05-22
    • 2014-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多