小编Kus*_*ain的帖子

Rails 4更新嵌套属性

更新嵌套属性追加而不是更新有许多关系我试图使用Rails 4 Update_attributes

Class Person <ActiveRecord::Base
 has_many :pets
 accepts_nested_attributes_for :pets
end

Class Pet < ActiveRecord::Base
 belongs_to :person
end
Run Code Online (Sandbox Code Playgroud)

在我的控制器中,我正在接受params为{id:23,house_no:'22A',宠物:[{name:'jeffy',type:'dog'},{name:'sharky',type:'fish'} ]}

我的更新方法是

def update
  @Person = Person.find(params[:id])
  if @Person.update(person_params)
    @Person.save
    render 'persons/create', status 200
  else
    render 'persons/create', status 400
  end
end

private
def person_params
  person_params = params.permit(:house_no)
  person_params.merge! ({pets_attributes: params[:pets]}) if params[:pets].present?
  person_params
end
Run Code Online (Sandbox Code Playgroud)

现在,当我更新它并且如果该人已经有宠物时,则新宠物被附加而不是更新,例如,如果id为1的人有1只名为"Tiger"的宠物并且我用2只名为"Shasha"的宠物更新该人"Monti"然后这个人的记录有3只宠物(Tiger,Shasha和Monti)而不是更新为2(Shasha和Monti)

ruby activerecord ruby-on-rails-3 ruby-on-rails-4

23
推荐指数
3
解决办法
3万
查看次数

给定节点数和边数,如何生成随机图?

我正在使用python与igraph库:

from igraph import *
g = Graph()
g.add_vertices(4)
g.add_edges([(0,2),(1,2),(3,2)])
print g.betweenness()
Run Code Online (Sandbox Code Playgroud)

我想生成一个包含10000个节点和100000个边的随机图.边缘可以是随机的.请建议一种随机边缘的方法(使用numpy.random.rand)

python random igraph

6
推荐指数
2
解决办法
1万
查看次数