我有与问题相关的答案,但在创建新问题后,它应该有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 /答案的链接(显然答案不是有效路径)。有这个原因吗?
答案 0 :(得分:2)
您在创建我想问的问题后创建一些答案实例。它可能是 question_controller 代码或 models / question.rb 代码。您可以分析代码并在那里找到问题。
简单的解决方法是添加条件
<% if @question.answers.empty? %>
<p>No answers yet.</p>
<% else %>
<% @question.answers.each do |ans| %>
...
<% end %>
答案 1 :(得分:1)
此问题可能是由每次创建问题时保存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
每当你build
一个关联对象时,你基本上是在数据库中创建一个与父对象相关联的条目