【问题标题】:Fields_for build repeating itself every time I updateFields_for 每次更新时都会重复构建
【发布时间】:2014-12-10 16:28:42
【问题描述】:

我有一个愚蠢的问题,我不知道如何解决。

我正在使用 fields_for ,每次我编辑时,构建都会再次完成,并且我会得到重复的属性。我只希望在第一次创建/更新的情况下建立赞助商,否则我希望他们只是更新。

我的看法

<%= f.input :sponsored %>
<%= f.fields_for :sponsors do |sponsor| %>   
  <%= sponsor.input :name, placeholder: "Marca", label: "Marca(s)" %>
  <%= sponsor.input :description, placeholder: "Descripción de la marca", label: "Descripción" %>
  <%= sponsor.input :web, placeholder: "Web" %>
  <%= sponsor.input :facebook, placeholder: "Facebook" %>
  <%= sponsor.input :twitter, placeholder: "Twitter" %>
  <%= sponsor.input :sponsored_avatar, placeholder: "Avatar" %>
<% end %>

照片控制器

def edit
  @photo = Photo.friendly.find(params[:id])
  @photo.sponsors.build
end

谢谢

【问题讨论】:

    标签: ruby-on-rails ruby fields-for


    【解决方案1】:

    您的代码中的要点是,当Photo.friendly.find(params[:id]) 已经创建了一些赞助商,然后当您@photo.sponsors.build 时,您正在添加一个空赞助商,因此,您只需要在Photo.friendly 没有赞助商时进行构建, 我想这对你有帮助

    def edit
      @photo = Photo.friendly.find(params[:id])
      @photo.sponsors.build unless @photo.sponsors.any?
    end 
    

    【讨论】:

      猜你喜欢
      • 2013-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-23
      • 1970-01-01
      • 1970-01-01
      • 2018-09-26
      • 2011-05-13
      相关资源
      最近更新 更多