javascript HAML部分响应Rails AJAX无法正常工作

时间:2013-12-19 10:03:45

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

我正在使用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)}");

2 个答案:

答案 0 :(得分:1)

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

所以:

"#{j render(@chat)}"

答案 1 :(得分:1)

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

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