加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails 3.1.3使用anchor属性和link_to标签从pos

发布时间:2020-12-17 04:31:03 所属栏目:百科 来源:网络整理
导读:我在我的帖子/索引视图上使用了link_to标签,并希望将其链接到我的帖子/ show / id视图,并使用锚点向下滚动到评论表单.出于某种原因,我无法让锚点工作.这是我的代码: 在帖子/索引中 %= link_to 'Add a Comment',post,:anchor = 'comment_form' % 这无法将#符
我在我的帖子/索引视图上使用了link_to标签,并希望将其链接到我的帖子/ show / id视图,并使用锚点向下滚动到评论表单.出于某种原因,我无法让锚点工作.这是我的代码:

在帖子/索引中

<%= link_to 'Add a Comment',post,:anchor => 'comment_form' %>

这无法将#符号附加到链接的末尾,因此它只是localhost:3000 / posts / id.
我还为link_to尝试过很多变种,包括:

<%= link_to 'Add a Comment',post(:anchor => 'comment_form' %>

<%= link_to 'Add a Comment',:controller => 'posts',:action => 'show',:id => @post,:anchor => 'comment_form' %>

但我没有运气.

这是我的帖子#show action:

def show
    @post = Post.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.json { render json: @post }
    end
  end

这里是帖子/节目视图,我希望锚点滚动到:

<h2><a name="comment_form" id="comment_form">Add a comment:</a></h2>

此外,如果我链接到索引页面上的某些内容,上面的任何一个都可以工作,因为我可以看到散列#已被附加到输出的url.由于某种原因,在尝试链接到节目页面时它无法正常工作.对此有何帮助?

解决方法

试试这个:
link_to('Add a comment',post_path(post,:anchor => 'comment_form'))

link_to的第二个参数通常按原样传递给url_for,第三个参数用作< a>的属性哈希.最终生成的元素.

因此,在您的第一个示例中,您将Post对象作为第二个参数传递,并将散列作为第三个参数传递.只有帖子会被传递给url_for.它永远不会看到包含:anchor选项的哈希,因此您不会在生成的URL的末尾看到锚点. (但是你可能会在生成的< a>元素上看到一个anchor =“comment_form”属性.)

你的第二个例子在语法上是不正确的.我想这导致了一个错误.

你的第三个例子……应该有用.我不确定为什么没有:-)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读