[英]Using orderable in rails_admin for a has_many :through relationship in rails 4
我正在尝试弄清楚如何使用位置,如https://github.com/sferik/rails_admin/wiki/Has-many-%3A through-association中的示例所示,但不使用受保护的属性,而是使用Rails 4的强大参数。 如果我尝试使用没有attr_accessible :block_ids
的页面上给出的block_ids=
函数,我会收到一条带有unknown attribute :block_ids
的ActiveRecord::UnknownAttributeError
错误unknown attribute :block_ids
。 显然,如果我使用attr_accessible :block_ids
,它会要求我将protected_attributes添加到我的Gemfile中,这不是Rails 4方式。
有没有人能够使用强参数在rails_admin中为Rails 4制作可订购位置?
省略attr_accessible :block_ids
并在底部应用替代解决方案对我attr_accessible :block_ids
。
PS:Rails 4.2.0,rails_admin为0.6.6
class Grid < ActiveRecord::Base
has_many :block_grid_associations, :dependent => :delete_all, :autosave => true, :include => :block
has_many :blocks, :through => :block_grid_associations
def block_ids=(ids)
unless (ids = ids.map(&:to_i).select { |i| i>0 }) == (current_ids = block_grid_associations.map(&:block_id))
(current_ids - ids).each { |id| block_grid_associations.select{|b|b.block_id == id}.first.mark_for_destruction }
ids.each_with_index do |id, index|
if current_ids.include? (id)
block_grid_associations.select { |b| b.block_id == id }.first.position = (index+1)
else
block_grid_associations.build({:block_id => id, :position => (index+1)})
end
end
end
end
rails_admin do
configure :block_grid_associations do
visible(false)
end
configure :blocks do
orderable(true) # only for multiselect widget currently. Will add the possibility to order blocks
# configuration here
end
end
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.