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

html – 在rails中定义锚标签的正确方法是什么?

发布时间:2020-12-14 21:42:15 所属栏目:资源 来源:网络整理
导读:从 documentation(和谷歌)显而易见,如何生成一个链接,例如播客/ 5#评论。你只是传递一个值为:anchor到link_to。 我关心的是生成 a name =“comments”注释 / a的简单任务。标签,即第一链接的目的地。 我已经尝试了以下,虽然他们似乎工作,但是标记并不
从 documentation(和谷歌)显而易见,如何生成一个链接,例如播客/ 5#评论。你只是传递一个值为:anchor到link_to。

我关心的是生成< a name =“comments”>注释< / a>的简单任务。标签,即第一链接的目的地。

我已经尝试了以下,虽然他们似乎工作,但是标记并不是我预期的:

link_to "Comments",:name => "comments"
link_to "Comments",:anchor => "comments"

我想我缺少一些明显的东西。谢谢。

解决方法

你被Ruby的语法糖(Rails大量使用)变得困惑。让我在回答你的问题之前简要解释一下。

当一个ruby函数使用一个作为一个哈希的单个参数:

def foo(options)
  #options is a hash with parameters inside
end

你可以“忘记”放括号/括号,并像下面这样调用:

foo :param => value,:param2 => value

Ruby将填写空白,并了解您要完成的是这样的:

foo({:param => value,:param2 => value})

现在,对于你的问题:link_to需要两个可选的哈希值 – 一个叫做options,另一个是html_options。你可以想像这样定义(这是一个近似值,它更复杂)

def link_to(name,options,html_options)
...
end

现在,如果你这样调用:

link_to 'Comments',:name => 'Comments'

Ruby会有点困惑。它将尝试为您填写空白,但错误地:

link_to('Comments',{:name => 'Comments'},{}) # incorrect

它会认为name => “评论”部分属于选项,而不是html_options!

你必须通过自己填充空白来帮助红宝石。把所有括号放在适当的位置,并按照预期的方式行事:

link_to('Comments',{},{:name => 'Comments'}) # correct

如果需要,您可以实际删除最后一组括号:

link_to("Comments",:name => "comments") # also correct

为了使用html_options,你必须先留下第一组括号。例如,您需要使用确认消息和名称的链接:

link_to("Comments",{:confirm => 'Sure?'},:name => "comments")

其他导轨助手具有类似的构造(即form_for,collection_select),因此您应该学习此技术。有疑问,只需添加所有括号。

(编辑:李大同)

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

    推荐文章
      热点阅读