未通过ActiveAdmin触发after_destroy回调

时间:2018-10-10 06:49:54

标签: ruby-on-rails ruby-on-rails-4 callback activeadmin

我将ActiveAdmin用于应用程序的后台,并且具有以下三种模型:

String[] array = {"one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"};
MultiSelectionSpinner multiSelectionSpinner = (MultiSelectionSpinner) findViewById(R.id.mySpinner);


multiSelectionSpinner.setListener(this);

@Override
    public void selectedIndices(List<Integer> indices) {
}

@Override
public void selectedStrings(List<String> strings) {
    Toast.makeText(this, strings.toString(), Toast.LENGTH_LONG).show();
}

在我的class Organization has_many :organization_collection_relations has_many :collections, through: :organization_collection_relations end class OrganizationCollectionRelation belongs_to :organization belongs_to :collection after_destroy :do_something end class Collection has_many :organization_collection_relations has_many :organizations, through: :organization_collection_relations end Organization的编辑页面中。当我进行编辑和组织(例如,删除所有集合)时,就会出现问题。 f.input :collections回调方法after_destroy没有被触发。因此,我必须在活动管理文件的控制器部分中进行解决。

do_something

我认为有更好的方法来解决这个问题...

2 个答案:

答案 0 :(得分:0)

Active Admin也具有自己的回调,因此您可以像下面在admin文件夹中的organizations.rb文件中那样使用。

  after_destroy do |organization|
    # do your stuff
  end

我之前为before_save和after_save做过这项工作,我不确定它是否可用于after_destroy,您可以进一步了解here有关活动管理员回调的信息。

答案 1 :(得分:0)

是的,您可以尝试在管理文件中使用cut方法,例如

$ cut -d' ' -f1 < <(head -n$(($(wc -l < file) / 4)) file; tail -n$(($(wc -l < file) / 4)) file)
/dev/sda
/dev/sdb
/dev/sdg
/dev/sdh