我关心的是生成< 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 insIDeend
你可以“忘记”放括号/括号,并像下面这样调用:
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),因此您应该学习此技术。有疑问,只需添加所有括号。
总结以上是内存溢出为你收集整理的html – 在rails中定义锚标签的正确方法是什么?全部内容,希望文章能够帮你解决html – 在rails中定义锚标签的正确方法是什么?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)