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

时间:2013-01-20 21:41:37

标签: ruby-on-rails bookmarklet

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

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

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

我的模板如下所示:

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

我遇到的问题是javascript中的“(双引号”)。是否存在逃避报价的机制?我怎样才能正确嵌入?在Rails中公开书签的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

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

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

manually escaping节点的属性:

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

答案 1 :(得分:0)

several gems允许您创建书签。无论如何要转义并在href上呈现JavaScript,你应该将partial视为一个字符串:

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

Here也是在没有任何宝石的情况下在rails中创建书签的分步指南。