Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails\u admin有很多方法,但都是删除:通过modals_Ruby On Rails_Ruby On Rails 4_Has Many Through_Rails Admin - Fatal编程技术网

Ruby on rails Rails\u admin有很多方法,但都是删除:通过modals

Ruby on rails Rails\u admin有很多方法,但都是删除:通过modals,ruby-on-rails,ruby-on-rails-4,has-many-through,rails-admin,Ruby On Rails,Ruby On Rails 4,Has Many Through,Rails Admin,我有活动,活动佣金,申请人和申请人佣金模式 campaign\u佣金是所有佣金都可用于活动,申请人\u佣金是这些佣金的申请人实例 当我删除申请者时,rails_admin还希望同时删除活动佣金和申请者佣金。我只希望销毁申请人的佣金 我如何指定这种情况发生 我的模型: 申请人.rb class Applicant < ActiveRecord::Base enum hired: [:pending, :declined, :awaiting_post, :accepted] at

我有
活动
活动佣金
申请人
申请人佣金
模式

campaign\u佣金
是所有
佣金
都可用于
活动
申请人\u佣金
是这些
佣金的
申请人
实例

当我删除申请者时,rails_admin还希望同时删除活动佣金和申请者佣金。我只希望销毁申请人的佣金

我如何指定这种情况发生

我的模型: 申请人.rb

class Applicant < ActiveRecord::Base

  enum hired:  [:pending, :declined, :awaiting_post, :accepted]
  attr_accessor :post_url


  belongs_to :post
  belongs_to :campaign
  belongs_to :site

  has_many :applicant_commissions
  accepts_nested_attributes_for :applicant_commissions
  has_many :campaign_commissions, through: :applicant_commissions


  scope :accepted, -> { where('hired == ?', 3) }
  scope :declined, -> { where('hired < ?', 1) }
  scope :pending, -> { where('hired < ?', 0) }
  scope :awaiting_post, -> { where('hired < ?', 2) }

  validates :campaign_id, :presence => true
  #validates :site_id, :presence => true
  validates :applicant_commissions, :presence => true

  validates :campaign_id, uniqueness: { scope: :site_id,
                                        message: "We already have an application from you" }
class申请人{where('hired==?',3)}
范围:拒绝,->{where('hired<?',1)}
作用域:待定,->{where('hired<?',0)}
范围:待岗,->{where('hired<?',2)}
验证:campaign_id,:presence=>true
#验证:site_id,:presence=>true
验证:申请人佣金,:出席=>true
验证:活动\u id,唯一性:{scope::site\u id,
消息:“我们已经收到您的申请”}
申请人佣金.rb

    class ApplicantCommission < ActiveRecord::Base
      include ActionView::Helpers::NumberHelper

      belongs_to :applicant
      belongs_to :campaign_commission

      has_many :invoice_parts
      #delegate :user, to: applicant
end
class CampaignCommission < ActiveRecord::Base

  belongs_to :campaign
  belongs_to :commission

  has_many :applicant_commissions
  has_many :applicants, through: :applicant_commissions

end
class applicationcommission
竞选委员会

    class ApplicantCommission < ActiveRecord::Base
      include ActionView::Helpers::NumberHelper

      belongs_to :applicant
      belongs_to :campaign_commission

      has_many :invoice_parts
      #delegate :user, to: applicant
end
class CampaignCommission < ActiveRecord::Base

  belongs_to :campaign
  belongs_to :commission

  has_many :applicant_commissions
  has_many :applicants, through: :applicant_commissions

end
class
campaign.rb(不涉及问题,但为上下文添加)

class活动{:default=>“500x500>”,:thumb=>“100x100>”},:default\u url=>“/images/:style/missing.png”
验证\u附件\u内容\u类型:图像,:内容\u类型=>/\Aimage\/.\Z/
属于:计划
属于:用户
你有很多申请者吗
有很多:竞选委员会
有很多:佣金,通过::活动佣金
有很多:图像,如::imageable
范围:前,->{limit(4)}
结束

申请人佣金通过此关系与活动佣金达成一致

has_many :campaign_commissions, through: :applicant_commissions
我建议这样做是为了解决你提出的问题

has_many :campaign_commissions
而且,我没有在您的示例模型中看到这一点,但是为了答案的完整性,我将在这里包括它。如果不包括销毁属性,则不会删除依赖记录(或关联依赖记录)

 has_many :applicant_commissions, :dependent => :destroy
我不认为您可以通过两种方式拥有“多通”关系,因为在应用程序运行期间处于活动状态,但当您想要删除父记录时,可以挂起该关系。但也许有人会给出一个答案和一个方法