2014-02-23 58 views
1

我有問題的答案,但創建一個新的問題後,它應該有0個答案。在頁面底部彈出額外鏈接?

在此塊的代碼

<% @question.answers.each do |ans| %> 

    <div class="container"> 
     <div class="row-fluid"> 
     </p> 

     <p> 
      <%= ans.answer %> 
     </p> 

     <h5><em> 
      <%= ans.commenter %> posted 
      <%= link_to "Answer comments", [@question,ans] %> 

     </em></h5> 

    </div> 
</div> 
<% end %> 

即使在新創建的一個問題,沒有答案場不存在的答案出現在視圖中,並有質疑/ 1 /回答(很明顯答案的鏈接不是有效的路徑)。是否有一個原因?

+1

看起來像在控制器中發現問題的可能性更大。你可以發佈該代碼嗎? –

回答

2

您在創建我想的問題後創建一些答案實例。它可能是question_controller code或models/question.rb code。您可以分析代碼並在那裏找到問題。

簡單的解決方法是添加條件

<% if @question.answers.empty? %> 
    <p>No answers yet.</p> 
<% else %> 
    <% @question.answers.each do |ans| %> 
    ... 
<% end %> 
1

.build

這個問題將有可能通過answer的儲蓄每次創建一個問題

我想像你當時引起'正在做這樣的事情:

#app/controllers/questions_controller.rb 
def new 
    @question = Question.new 
    @question.answers.build 
end 

def create 
    @question = Question.new(question_params) 
    @question.save 
end 

private 

def question_params 
    params.require(:question).permit(answers_attributes: []) 
end 

每次你關聯一個對象時,你基本上都會在數據庫中創建一個條目,這個條目將與父對象關聯