在 Rails 中生成书签的最佳方法是什么?



我有一个Javascript,我想嵌入一个超链接,像这样:

<a href="javascript:function() {...}();">

我创建了一个名为_bookmarkelet .html的部分。Erb,它生成javascript,包括动态生成的指向app/assets中的资源的链接。它不能是静态的,因为它创建的url指向当前服务器上的资产,这需要是绝对的,因为在它安装后,bookmarklet可以在不同的web主机上执行。

我的模板是这样的:

<a href="<%= render :partial => 'pages/bookmarklet' %>"

我遇到的问题是javascript中的"(双引号")。是否有转义引号的机制?我怎样才能正确地嵌入这个?在Rails中公开bookmarklet的正确方法是什么?

您有几个选择。您可以使用link_to帮助器为您执行转义:

link_to "Bookmarklet!", render(:partial => 'pages/bookmarklet')

或者手动转义节点的属性:

<a href="<%=h render :partial => 'pages/bookmarklet' %>"

有几个gem允许您创建bookmarklet。无论如何,要转义并在href上呈现JavaScript,您应该将部分视为字符串:

<%= link_to "Bookmarklet", "#{render 'bookmarklet'}" %>

这里也是一个循序渐进的指南,在rails中创建一个书签,而不需要任何gem。

相关内容

最新更新