Ruby on rails 动作成功时调用javascript函数

Ruby on rails 动作成功时调用javascript函数,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,我有一个名为USER_LOCATIONS的控制器。我想要的是,在创建操作成功后,页面重定向到另一个控制器,并在此时加载特定的javascript函数 这是因为我只需要在创建用户位置时运行该函数,然后再也不需要了 我该怎么做 -----------编辑------------ 用户位置 def create @user_location = UserLocation.new(user_location_params) respond_to do |

我有一个名为USER_LOCATIONS的控制器。我想要的是,在创建操作成功后,页面重定向到另一个控制器,并在此时加载特定的javascript函数

这是因为我只需要在创建用户位置时运行该函数,然后再也不需要了

我该怎么做

-----------编辑------------ 用户位置

def create
            @user_location = UserLocation.new(user_location_params)

            respond_to do |format|
              if @user_location.save
                @resource_is_new = 'OK'  
                format.html { redirect_to root_path, notice: 'Ramal selecionado com sucesso.' }
                format.json { render :show, status: :created, location: @user_location }

              else
                format.html { render :new }
                format.json { render json: @user_location.errors, status: :unprocessable_entity }
              end
            end
        end
HOMECONTROLLER,索引视图

<% if @resource_is_new %>
  <%= content_for :extra_scripts do %>
    <script>
      alert('teste');
    </script>
  <% end %>
<% end %>

警惕(‘teste’);

只有在加载特定视图时,才可以使用
extra_scripts
内容块调用Javascript函数。如果您只希望在创建资源后在重定向后运行此JS,则可以在控制器操作中设置一个实例变量来指定:

<% if @resource_is_new %>
  <%= content_for :extra_scripts do %>
    <script>
      // call your function here
    </script>
  <% end %>
<% end %>

//在这里调用你的函数

将其放置在重定向视图的底部,并确保在控制器操作成功后,在控制器操作中设置
资源\u is\u new
实例变量。

Javascript不会在视图上运行的控制器上运行。您可以发布您拥有的代码,但我如何将此实例变量传递给另一个控制器视图,并将其重定向到?您可以将其作为参数传递,或存储在会话中。看,我编辑了这个问题