簡體   English   中英

帶有塊的rails 4 js.erb文件:其余的erb代碼被忽略

[英]rails 4 js.erb file with block: rest of erb code is ignored

我正在開發一個非常簡單的類似RoR4論壇的應用程序。 這是用於創建新論壇的forums_controller.rb動作:

def create
  @new_forum = Forum.new(forum_params)
  if @new_forum.save
    respond_to do |format|
      format.html { redirect_to forums_path }
      format.js
    end
  else
    respond_to do |format|
      format.html { render 'new' }
      format.js { render partial: 'form_errors' }
    end
  end
end

那里沒有魔術。 創建js.erb如下所示:

<%= add_gritter("This is a notification just for you!") %>
<%= broadcast "/forums/new" do %>
  $('#forum_form').remove();
  $('#new_forum_link').show();
  $('#forums_table').append('<%= j render @new_forum %>')
<% end %>

一切實際上都正常。 您可以看到的廣播塊調用使用Faye廣播管理界面更改的javascript。

我擔心的是,js.erb文件中的塊之外的任何內容(即add_gritter調用)都將被完全忽略。 我確定這不是一個麻煩的問題,因為更改該行以生成簡單的alert('hi'); 什么也沒做。 但是,如果調用在塊內移動,則會執行該命令(令人討厭的效果是每個客戶端都會收到通知,警報或其他內容)。 我真的沒有這個主意,希望能對您有所幫助。

<%= broadcast "/forums/new" do %>

正在將執行結果作為javascript(那個HTTOK)吐痰,讓它繼續前進。 所以應該

<% broadcast "/forums/new" do %>

請注意缺少=。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM