我在使用remote :: true
更新视图时遇到问题查看"做"显示部分:问题+这个问题的答案 按钮' Next'点击,但没有任何反应。 我无法想象为什么行动' list_update'不工作(在这个动作中我改变变量值以显示下一个问题+答案)。
do_controller:
class DoController < ApplicationController
def show
@cur_test = Test.where(id: params[:test_id])
@cur_q_all = Question.where(test_id: @cur_test)
@i = 0
@cur_q = @cur_q_all[@i]
@cur_ans_all = Answer.where(question_id: @cur_q)
end
def list_update
@i = 1
respond_to do |format|
format.html {}
format.js {}
end
end
end
&#13;
show.html.erb for do_controller:
<% @cur_test.each do |test| %>
<div>
<%= test.test_name %>
</div>
<% end %>
<div id="answers_all"><%= render('answers_all')%></div>
<%= link_to 'Next', user_test_do_path, method: :get, action: :list_update, remote: :true %>
&#13;
partial _answers_all.erb:
<div>
<%= @cur_q.q %>
</div>
<% @cur_ans_all.each do |f| %>
<div>
<%= f.answer %>
</div>
<% end %>
&#13;
list_update.js.erb:
$("#answers_all").html("<%= escape_javascript(render("answers_all")) %>");
&#13;
路线:
resources :users do
resources :tests do
get '/do' => 'do#show'
end
end
&#13;
答案 0 :(得分:0)
试试这个 -
<%= link_to 'Next', user_test_do_path(user_id: 1, test_id: 2), method: :get, remote: :true %>`
根据您的路线,它会点击do controller's show
行动。
如果您想使用do controller's list_update
操作,那么您可以明确提及您要使用的controller
和action
<%= link_to 'Next', {controller: :do, action: :list_update, user_id: 1, test_id: 2}, method: :get, remote: :true %>
添加到 routes.rb
get 'do/list_update'
注意:在上述两种情况下,我都会传递user_id
和test_id
,可以通过params[:user_id]
或params[:test_id]
希望它有所帮助!