ラベル active_admin の投稿を表示しています。 すべての投稿を表示
ラベル active_admin の投稿を表示しています。 すべての投稿を表示

2017年4月4日火曜日

active_adminのバージョンあげたらshowの処理が変わってたのでパッチ当てた

active_adminのバージョンを1.0.0.pre5にあげたらこれまでshowで見れてた
xxx_idなどが表示されなくなったので調べました。

https://github.com/activeadmin/activeadmin/blob/master/lib/active_admin/resource/attributes.rb#L27
どうやらこの処理でxxx_idやxxx_countなどの値が表示対象から外されるようになったようです。
ただ、それだと困るとの意見があったのでパッチを当てることにしました。

こちらのクックパッドさんの投稿を参考にして以下のようなパッチを書きました。
http://techlife.cookpad.com/entry/a-guide-to-monkey-patchers

require 'active_admin/version'
unless ActiveAdmin::VERSION == '1.0.0.pre5'
  raise "Confirm need this patch"
end

module ActiveAdmin
  class Resource
    module Attributes
      def reject_col?(c)
        return false
      end
    end
  end
end

2016年5月30日月曜日

active_adminのcsv出力でxxx_countというカラムが出てこない件

active_adminのデフォルトのcsv出力を使ってとあるテーブルをcsv出力していたら、
xxx_countのカラムが入っていないということで調べました。

とりあえずlocale設定してないからかなと思い、設定してみたもののだめでした。
https://github.com/activeadmin/activeadmin
でcountで何か除外処理とか入ってないかなと思い調べたものの、特に見つかりませんでした。


なので、activeadminのコードでデバッグしてみたところ、
https://github.com/activeadmin/activeadmin/blob/master/lib/active_admin/csv_builder.rb#L22-27
のresource.content_columnsでxxx_countが含まれていませんでした。
    def self.default_for_resource(resource)
      new resource: resource do
        column :id
        resource.content_columns.each { |c| column c.name.to_sym }
      end
    end


で、content_columnsはどこで実装されているのかを調べてくと、
railsのActiveRecordにある処理でした。
http://apidock.com/rails/ActiveRecord/ModelSchema/ClassMethods/content_columns
ここでばっちり_countを取り除いていました。
他に_idも取り除かれていて、csv見たら確かにxxx_idのカラムもありませんでした。

ちなみにcsvと同じ並びにあるxmlやjsonだとxxx_count普通に出てくるので、
activeadminがcsvのときだけcontent_columnsのメソッド使ったのは何でなんでしょうね。。。


参考URL
https://github.com/activeadmin/activeadmin/blob/master/lib/active_admin/csv_builder.rb
https://github.com/activeadmin/activeadmin/issues/4298
http://apidock.com/rails/ActiveRecord/ModelSchema/ClassMethods/content_columns

2016年3月31日木曜日

active_adminのscopeに設定したものが表示されない

active_adminのscopeに設定したものが表示されないと隣の席の人が言ってたので調べました

元々こうなっていました。
scope 'aaa', :need_aaa, default: false
  scope 'いいい', :need_iii, default: false

そこに以下のものを追加してたのですが、元々あった'いいい'の部分が表示されなくなってしまいました。
scope 'ううう', :need_uuu, default: false
調べたところ、scopeに日本語使ってるため表示されなくなったようです。
日本語の部分をとりあえず英語に変えたらうまく表示されるようになりました。

参考URL
http://qiita.com/SpicyCoffee/items/7b7060b93811be389893