0

我将 rails 应用程序从 rails 升级2.3.14到 rails 3.2.6。link_to_function 没有生成正确的 html。

以下辅助方法。. .

link_to_function(name, h("add_fields(this, \"#{association}\", \"#{escape_javascript(fields)}\")"))

正在生成...

<a href="#" onclick="add_fields(this, &amp;quot;quick_facts&amp;quot;, &amp;quot;&amp;lt;div class=\'quick_fact\'&amp;gt;\n  &amp;lt;div class=\'grid_4 prefix_1\'&amp;gt;\n    &amp;lt;label for=\&amp;quot;organization_quick_facts_attributes_new_quick_facts_quick_fact\&amp;quot;&amp;gt;QuickFact&amp;lt;\/label&amp;gt;\n    &amp;lt;br&amp;gt;\n    &amp;lt;select class=\&amp;quot;quick_fact_select\&amp;quot; id=\&amp;quot;organization_quick_facts_attributes_new_quick_facts_quick_fact\&amp;quot; name=\&amp;quot;organization[quick_facts_attributes][new_quick_facts][quick_fact]\&amp;quot;&amp;gt;&amp;lt;option value=\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;\/option&amp;gt;\n    &amp;lt;option value=\&amp;quot;Hours\&amp;quot;&amp;gt;Hours&amp;lt;\/option&amp;gt;\n    &amp;lt;option value=\&amp;quot;Serving\&amp;quot;&amp;gt;Serving&amp;lt;\/option&amp;gt;\n    &amp;lt;option value=\&amp;quot;Insurance Accepted\&amp;quot;&amp;gt;Insurance Accepted&amp;lt;\/option&amp;gt;\n    &amp;lt;option value=\&amp;quot;Features\&amp;quot;&amp;gt;Features&amp;lt;\/option&amp;gt;\n    &amp;lt;option value=\&amp;quot;Services Provided\&amp;quot;&amp;gt;Services Provided&amp;lt;\/option&amp;gt;&amp;lt;\/select&amp;gt;\n    &amp;lt;br&amp;gt;\n  &amp;lt;\/div&amp;gt;\n  &amp;lt;div class=\'clear\'&amp;gt;&amp;lt;\/div&amp;gt;\n  &amp;lt;div class=\'grid_4 prefix_1\'&amp;gt;\n    &amp;lt;label for=\&amp;quot;organization_quick_facts_attributes_new_quick_facts_content\&amp;quot;&amp;gt;Content&amp;lt;\/label&amp;gt;\n    &amp;lt;br&amp;gt;\n    &amp;lt;input id=\&amp;quot;organization_quick_facts_attributes_new_quick_facts_content\&amp;quot; maxlength=\&amp;quot;200\&amp;quot; name=\&amp;quot;organization[quick_facts_attributes][new_quick_facts][content]\&amp;quot; size=\&amp;quot;200\&amp;quot; type=\&amp;quot;text\&amp;quot; /&amp;gt;\n    &amp;lt;br&amp;gt;\n  &amp;lt;\/div&amp;gt;\n  &amp;lt;div class=\'clear\'&amp;gt;&amp;lt;\/div&amp;gt;\n  &amp;lt;div class=\'grid_2 prefix_1 exempt\'&amp;gt;\n    &amp;amp;nbsp;\n    &amp;lt;a href=\&amp;quot;#\&amp;quot; class=\&amp;quot;remove_temp_qf\&amp;quot;&amp;gt;remove&amp;lt;\/a&amp;gt;\n  &amp;lt;\/div&amp;gt;\n&amp;lt;\/div&amp;gt;\n&amp;quot;); return false;">Add Another QuickFact</a>

呈现此 html 时,未调用 onclick 函数,这是错误。

syntax error

add_fields(this, &quot;quick_facts&quot;, &quot;&lt;div class=\'quick_fact\'&gt;...

quick_facts# (line 1, col 17)

有什么办法解决这个问题吗??

4

1 回答 1

1

#h 方法在 Rails 3 中发生了变化,Rails 3 现在自动转义“不安全”字符串。有关更多信息,请参阅此问题

于 2012-12-11T15:01:02.177 回答