gpt4 book ai didi

ruby-on-rails - ruby rails : Getting an extra record that is nil?

转载 作者:数据小太阳 更新时间:2023-10-29 08:27:53 26 4
gpt4 key购买 nike

我注意到当我在我的一个表中创建一条记录时,我有一些与该表关联的数据,它已经添加了 1 条记录,但它是零?

例如:

列出 Controller

  def show
@list = List.find(params[:id])
@idea = @list.ideas.build
respond_to do |format|
format.html # show.html.erb
format.json { render json: @list }
end
end

列表模型

has_many :ideas

创意模型

belongs_to :list

list > show.html.erb

<%= @list.ideas.each do |idea| %>
<div>
<div class="list_idea_desc"><%= idea.description %></div>
<div><%= link_to 'Show', idea %></div>
<div><%= link_to 'Destroy', idea, method: :delete, data: { confirm: 'Are you sure?' } %> </div>
</div>
<% end %>

我得到这条记录:

[#<Idea id: nil, name: nil, description: nil, 
picture: nil, created_at: nil, updated_at: nil, list_id: 1>]

当我创建一个新列表时,这个idea 记录会自动插入到我的数据库中。为什么会这样?

最佳答案

newbuild 的区别在于build 将新创建的对象添加到集合中:

替换:

@idea = @list.ideas.build

与:

@idea = @list.ideas.new

或者如果你只想使用build,你应该

替换:

<%= @list.ideas.each do |idea| %>

与:

<%= @list.ideas(true).each do |idea| %>

true discards the cached copy of ideas and goes back to the database.

关于ruby-on-rails - ruby rails : Getting an extra record that is nil?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16329496/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com