评估Rails控制器中的JavaScript?

时间:2017-03-23 23:31:17

标签: ruby-on-rails

我有一个使用Faye的实时应用程序。执行创建操作时,通常我会回复js并且我有一个包含此文件的create.js.erb文件:

<% broadcast "/auditors/activity" do %>
  $('.audit-activity .card-data .list').append("<%= escape_javascript render('auditors/activity', activity: @activity) %>")
<% end %>

广播方法捕获块中的javascript并处理它:

  def broadcast(channel, &block)
    message = {channel: channel, data: capture(&block)}
    uri = URI.parse(Rails.application.secrets.faye_server["server"])
    Net::HTTP.post_form(uri, message: message.to_json)
  end

但是,在某些情况下,我无法回复js。我必须回复html并执行重定向。因此,我想做这样的事情:

if @contact.save
  <% broadcast "/auditors/activity" do %>
     $('.audit-activity .card-data .list').append("<%= escape_javascript render('auditors/activity', activity: @activity) %>")
  <% end %>

  redirect_to contact_path(@contact)

当然,这行javascript不是有效的ruby语法,因此会引发异常。如何在控制器中完成此操作?

0 个答案:

没有答案