我想了解我有一些我的Rails项目中遇到的问题。我有两个型号,嵌套模型尺寸较大(+1),比过去在Rails的
第一招:
class Donkey < ActiveRecord::Base
has_many :comments, dependent: :destroy
validates :name, :surname, :age, presence: true
end
第二个:
class Comment < ActiveRecord::Base
belongs_to :donkey
validates :comment, :commenter, presence: true
end
我的问题是我之前添加一条记录评论模式,@ donkey.comments.size为1并且返回的对象是零。
要从此逃避我使用,
<% @donkey.comments.each do |comment| %>
<p><strong><%= comment.commenter %></strong></p>
<p><%= comment.comment %></p>
<% if comment.id.present? %>
<p><%= link_to 'Destroy Comment', donkey_comment_path(@donkey, comment),
method: :delete, data: { confirm: 'Do you really want to delete this question?' } %></p>
<% end %>
<% end %>
上面的代码我的视图文件,如果你留意,你可以看到我使用if语句没有得到一个错误。 (零对象)
我的 '添加注释' 从视图文件在下面的代码,
<%= form_for([@donkey, @comment]) do |f| %>
<p><%= f.label :commenter %>: <%= f.text_field :commenter %></p>
<p><%= f.label :comment %>: <%= f.text_area :comment %></p>
<%= f.submit %>
<% end %>
而且@comment = @ donkey.comments.build在我的控制器。
我想了解这个错误,这就是为什么我做了这样一个简单的模型。我正在检查SQL服务器中没有记录,但@ donkey.comments.size为1且没有对象。
任何人都可以帮助我在这个问题上?
非常感谢您的宝贵时间,
您是否尝试过创建驴在控制台中留言以隔离问题是否存在于模型中? – lcguida
感谢您的回复@rockskull。我销毁了开发数据库并再次迁移并登录到rails控制台,并从那里创建了Donkey和Comment记录=>结果是有一条记录,但大小为2.模型中存在什么问题?这很简单,你可以看到上面..真的很好奇:( – manorie