我正在使用 Rails 3.2 中的一个项目并使用 Ryan Bates 的 PrivatePub gem(Faye 包装器)。我在将 render_to_string 的结果传递到 Publish 方法的 javascript 时遇到问题。到目前为止,我还没有浏览过 Google、render_to_string 文档或 Faye 文档。
在我的控制器中,我有以下内容:
def my_action
html_text = render_to_string :partial => 'my_partial', :formats => [:html]
puts html_text
PrivatePub.publish_to("/#{my_channel}", "$('#my_id').html('#{html_text}');")
end
这不起作用(订阅页面上的 div 不会更新)。但是,将 my_partial 中相同内容的字符串分配给 html_text,它可以正常工作(div 更新):
def my_action
html_text = "<h3>Testing this</h3>" #This is the only change from above
puts html_text
PrivatePub.publish_to("/#{my_channel}", "$('#my_id').html('#{html_text}');")
end
查看服务器日志,我可以看到在任何一种情况下,“puts html_text”输出看起来都完全相同。
不确定这是否重要,但我的控制器只响应 json,并且我正在使用 curl 将测试 POST 推送到此操作。
部分很简单:
<h3>Testing this</h3>
我必须在这里遗漏一些简单的东西,但我不明白为什么 render_to_string 会给我一个不同的结果,只是分配一个字符串变量。
有人有想法么?
谢谢!