如何通过咖啡脚本制作ajax-request?

时间:2015-07-26 15:58:06

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

请帮助解决问题。

专辑控制器:

  def create
    @album = current_user.albums.build(album_params)

    if @album.save
      flash[:success] = :album_saved
      redirect_to user_album_path(@current_user, @album)
    else
      flash.now[:error] = :album_not_saved
      render 'new'
    end
  end

html表格:

<%= form_for [current_user, @album], remote: true do |f| %>
    <%= f.text_field :title %>
    <%= f.submit %>
<% end %>

布局/ _head.html.erb:

<title>Vd</title>
<%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true %>
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
<%= csrf_meta_tags %>

形成它的作品。 ajax-request在数据库中创建一条新记录。

我想在表单中添加一条消息。为此,我添加以下代码

资产/ JavaScript的/ albums.coffee:

$(document).ready ->
  $("#new_album").on("ajax:success", (e, data, status, xhr) ->
    $("#new_album").append xhr.'<p>album add successfull</p>'
   ).on "ajax:error", (e, xhr, status, error) ->
    $("#new_album").append "<p>ERROR</p>"

结果,表格被加载到屏幕上,显示如下:

  

相册中的ExecJS :: RuntimeError #new Showing   /home/kalinin/rails/phs/app/views/layouts/_head.html.erb第3行   raise:SyntaxError:[stdin]:8:32:意外的字符串   <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>

1 个答案:

答案 0 :(得分:1)

我对CoffeeScript了解不多,但在查看Guides时,它有以下代码段

$(document).ready ->
  $("#new_article").on("ajax:success", (e, data, status, xhr) ->
    $("#new_article").append xhr.responseText
  ).on "ajax:error", (e, xhr, status, error) ->
    $("#new_article").append "<p>ERROR</p>"

因此,将$("#new_album").append xhr.'<p>album add successfull</p>'更改为$("#new_album").append xhr.responseText可以解决您的问题。