【问题标题】:javascript HAML partial response for Rails AJAX not workingRails AJAX的javascript HAML部分响应不起作用
【发布时间】:2013-12-19 10:03:45
【问题描述】:

我正在使用 HAML 为 remote:true 表单返回 js

下面是我的代码:

$('#chat-message').val('');
$('ul.chat').append('#{j render(@chat)}');

这一行似乎产生了错误,并且没有正确解析。

当我删除第二行时,第一行可以正常工作。

可能出了什么问题?

以下是错误:

ActionView::MissingTemplate at /chats
=====================================

> Missing partial chats/chat with {:locale=>[:en], :formats=>[:js, :html], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :haml]}. Searched in:
  * "C:/BitNami/rubystack-2.0.0-4/projects/virtual_exhibition/app/views"
  * "C:/BitNami/rubystack-2.0.0-4/ruby/lib/ruby/gems/2.0.0/gems/jasmine-rails-0.4.9/app/views"
  * "C:/BitNami/rubystack-2.0.0-4/ruby/lib/ruby/gems/2.0.0/bundler/gems/bigbluebutton_rails-2c99a8402df4/app/views"
  * "C:/BitNami/rubystack-2.0.0-4/ruby/lib/ruby/gems/2.0.0/gems/devise_invitable-1.3.1/app/views"
  * "C:/BitNami/rubystack-2.0.0-4/ruby/lib/ruby/gems/2.0.0/gems/devise-3.2.1/app/views"


app/views/chats/create.html.haml, line 2
----------------------------------------

``` ruby
    1   $('#chat-message').val('');
>   2   $('ul.chat').append("#{j render(@chat)}");

【问题讨论】:

  • 你有这个或更多代码的演示可以分享吗?
  • @notrab 刚刚更新错误

标签: jquery ruby-on-rails ruby ajax ruby-on-rails-4


【解决方案1】:

您需要使用双引号 " 而不是单引号 ' 来评估 #{j render(@chat)} 内部的表达式:

$('ul.chat').append("#{j render(@chat)}");

【讨论】:

  • 我刚刚更新了我的问题。我现在有双引号,但仍然是同样的错误。我可以错过部分
  • @PassionateDeveloper,当您渲染像render @chat 这样的对象时,在这种情况下,您还需要名称为_chat.html.haml 的视图。
  • 该死的双引号!我怎么没看到?很好的答案。
【解决方案2】:

要获得字符串插值,您需要 " ",而不是 ' '

这样做:

"#{j render(@chat)}"

【讨论】:

  • 你有一个名为 chats/chat 的部分吗?你想渲染哪个部分?
  • 抱歉,我刚刚添加了_chat.html.haml,它成功了。谢谢!
猜你喜欢
  • 2018-07-13
  • 1970-01-01
  • 2017-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-10
  • 1970-01-01
相关资源
最近更新 更多