2015-11-26 46 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