2016-05-19 33 views
-1

我正在嘗試創建一個應用程序,我們可以在其中提問並且問題有很多答案。所以我在這裏使用了一對多的關聯。 現在我有兩個模型問題答案和兩個控制器問題&答案。 我在\問題形式\ show.html.erb在軌道上的ruby中創建一對多關係的新記錄

<%= form_for @answer, :url => "answer", :method => 'post' do |f| %> 
    <%= f.hidden_field :question_id, :value => @question.id %> #this i am not sure about 
    <%= f.text_area :content %> 
    <%= f.submit "SUBMIT" %> 
<% end %> 

在控制器的顯示方法是:

def show 
    @question = Question.find(params[:id]) 
    @answers = @question.answers 
    @answer = Answer.new 
    end 

我還創建了一個路線答案控制器的創建方法

post 'questions/show/answer' => "answers#create" 

現在的問題是,question_id作爲字符串傳遞,但我希望它作爲整數傳遞,以便我可以將它關聯到當前問題。我該怎麼做,或者有沒有其他辦法可以做到這一點。

回答

0

在您的控制器中使用new動作爲您的表單提供新的答案對象,然後在create動作中找到您想要回答的問題並在其下創建答案。像這樣:

def new 
    @answer = Answer.new 
end 

def create 
    @question = Question.find(params[:id]) 
    @question_created = @question.answers.create(answers_params).save 

    if @question_created 
    // do something or redirect somewhere 
    end 
end 

private 

def answers_params 
    params.require(:answer).permit(:content) 
end 

然後在你的路線,你可以利用的資源來創造必要REST風格的路線

resources :questions do 
    resources :answers 
end 

注意:每個動作要用於特定要求的目的,除了在實例當你想讓AJAX調用來獲得表演動作中的表格)

+0

我的窗體在另一個控制器的視圖中運行,即;我的form_for(@answer)在問題控制器的show.html.erb視圖中..這是否會影響您剛剛給我的代碼 –

+0

它不應該。嘗試使用上面提供的代碼在Answers控制器中使用create action。 – Fiyin

相關問題