Ruby on rails 动作成功时调用javascript函数
我有一个名为USER_LOCATIONS的控制器。我想要的是,在创建操作成功后,页面重定向到另一个控制器,并在此时加载特定的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 |
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不会在视图上运行的控制器上运行。您可以发布您拥有的代码,但我如何将此实例变量传递给另一个控制器视图,并将其重定向到?您可以将其作为参数传递,或存储在会话中。看,我编辑了这个问题