我想在我的current_page
的函数中从js文件运行我的脚本要做到这一点,我尝试这样的事情
第1步 (在我的href中插入一个参数(idz = 1 || 2)以便使用它)
基团/ show.html.erb
<%- if current_page?("/groups/#{task.group.id}/")%>
<a href="/tasks/<%=task.id%>/undone?idz='1'" data-method="patch" data-remote="true" class="task_done_btn">undone</a>
<% elsif current_page?("/groups/#{task.group.id}/task_board") %>
<a href="/tasks/<%=task.id%>/undone?idz='2'" data-method="patch" data-remote="true" class="task_done_btn">undone</a>
<% end %>
第2步(将第一步中定义的idz转换为局部变量)
controllers / tasks_controller.rb
def undone
respond_to do |format|
@idz = idz
format.html { redirect_back}
format.js
end
end
第3步(使用idz作为运行我的jquery的条件)
任务/ undone.js.erb
<%- if @idz == 1 %>
// jquery 1
<% elsif @idz == 2 %>
// jquery 2
<% end %>
但是这种方法正在工作( - )。你知道我怎么解决这个问题吗?我认为问题附加到step2,当我想将我的参数(idz)的数量归因于局部变量
答案 0 :(得分:2)
我知道,您正在使用remote: true
<强> show.html.erb 强>
<%= link_to "undone", undone_task_path(task.id, :idz=> "1"), class: "task_done_btn", remote: true %>
<强>控制器强>
def undone
respond_to do |format|
@idz = params[:idz]
#no need format.html, because using remote: true
format.js
end
end
<强>路由强>
resources :tasks do
member do
put 'undone'
end
end
<强> undone.js.erb 强>
<%- if @idz == 1 %>
// jquery 1
<% else %> #no need elsif
// jquery 2
<% end %>