jquery - 对于 jQuery、Rails 3 更新,您能否呈现具有多个表单而不是一个表单的页面?

标签 jquery ruby-on-rails-3

我有一个 Rails 3 表单,其中包含 100 多个问题。每次单击与答案关联的单选按钮时,表单都会返回所有 100 多个问题的答案。因此,当某人完成时,所有 100 个问题的 100 条记录将被更新。总共10,000条记录更新。

我正在尝试思考如何更改代码,以便每次点击仅更新一个答案,而不是全部 100 个答案。

如果您想了解更多细节,代码如下。谢谢。

形式:

<%= form_tag update_result_answers_path, :remote => true do %>
   <% @answers.each do |q| %>
      <%= q[0].question %>
      <% [ 1, 2, 3, 4, 5 ].each do |f| %>
         <%= radio_button_tag q[1].id, f, f == q[1].score, :class => 'submittable' %>
      <% end %>
   <% end %>
<% end %>

application.js:

$('.submittable').live('change', function() {
$(this).parents('form:first').submit();
return false;
});

Controller :

  def update_result
    @answers = []

    params[:answer].each_pair do |key,value|
      ans = Answer.find(key.to_i)        
      ans.update_attributes(:score => value)
      @answers << ans
    end
    render :nothing => true
  end

最佳答案

好吧,我想我现在遇到了问题。 他就是我会做的:

<%= form_tag update_score_answer_path(answer), :id => "answer_#{answer.id}_form", :remote => true do %>
  <%= answer.question %> <%# didn't understand this here, maybe it's outside of the loop? %>
  <% [ 1, 2, 3, 4, 5 ].each do |f| %>
    <%= radio_button_tag answer.id, f, f == answer.score, :class => 'submittable' %>
  <% end %>
<% end %>

然后循环它们:

<% @answers.each do |answer| %>
  <%= render 'answers/answer_form', :answer => answer %>
<% end %>

然后在 Controller 上

def update_score
  @answer = Answer.find(params[:answer_id])
  @answer.score = params[:answer][:score]
  @answer.save
end

并用js响应

$('#answer_<%= @answer.id %>_form').replaceWith("<%= escape_javascript( render 'answers/answer_form', :answer => @answer ) %>")

Controller 可能不正确,但你明白了。如果您愿意,您也可以只更新单选按钮,只返回 javascript。

希望这有帮助

此外,如果需要,您可以使用

切换渲染
render :partial => 'lala', :locals => { :answer => object }

关于jquery - 对于 jQuery、Rails 3 更新,您能否呈现具有多个表单而不是一个表单的页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5929602/

相关文章:

ruby-on-rails - setup_email.rb 中的 ActionMailer 配置有问题

ruby-on-rails - 如何 "crawl"只有根 URL 与 Anemone ?

ruby-on-rails-3 - 如何在 ActiveAdmin 编辑页面中呈现部分内容

ruby-on-rails - 获取 Rails 中讨论最多的论坛

javascript - 为什么这个 JavaScript 正则表达式替换会破坏这个 jQuery 代码?

javascript - 如何通过 JavaScript 在输入中设置值?

javascript - PhantomJS 获取文档元素位置

jquery - 更改 jstree 中的 AJAX 选项并从服务器重新加载树

ruby-on-rails - 从 ActiveRecord 上的模型中检索所有有错误的对象

jquery - 精确的列宽