2015-11-26 56 views
0

我试图学习导轨和打破东西:)如何使用AJAX更新导轨值

我试图解决两个问题。我想创建一个允许用户选择多个问题的下拉列表,然后我想分别查看这些问题(按下一页和下一页)以填写这些问题和答案。

我跟着Ryan Bates RailsCasts:#197嵌套模型表单第2部分来创建嵌套表单。

所以我的结构如下:

测验 - >问题 - >答案

当用户创建一个新的测验,他们被要求他们要多少的问题创造,价值被送到通过ajax,然后将它们带到该测验第一个问题的页面。

然后在竞猜控制器:

def number_of_questions 
    @number_of_questions = params[:number_of_questions] 
    # create this many questions in edit and new 
end 

def new 
    @quiz = Quiz.new 
    3.times {@quiz.questions.build} # replace 3 with number of times 
end 

我只是这样做是为了学习新的东西。

+0

如果他们带到无论如何新页面然后什么是Ajax? –

+0

是的,你说得对。我最初想在测验页面上创建表单的数量。 – umar

回答

0

你可能不想通过ajax发送它,而是作为一个参数。

您必须创建一个显示下拉菜单的表单。

但是,如果number_of_questions是显示窗体的动作,则可以删除@number_of_questions = params[:number_of_questions]。它只是将nil分配给实例变量。

您只需将表单发送至new操作即可。只需指定url参数在form_for比设定的参数,而不是3

视野:

<%= form_for :quiz, url: path_to_new_action do |f| %> <!-- Specify the path! --> 
    <%= f.select :quantity_questions, 1..20 %> 
    <%= f.submit %> 
<% end %> 

控制器:

def number_of_questions 
end 

def new 
    @quiz = Quiz.new 

    params[:question][:quantity_questions].to_i.times do 
    @quiz.questions.build 
    end 
end