Reputation: 3526
I'm having a problem figuring out how to search across associations in the list views for models in the Rails_Admin interface.
Background information:
searchable :organization
to config.model Post do...field :organization do{}end...end
does not work.I would really appreciate any advice on this matter. Thank you!
Post model:
class Post < ActiveRecord::Base
belongs_to :user
belongs_to :hub
attr_accessible :hub_id, :user_id
before_validation :set_count
validates :hub_id, :presence => true
validates :user_id, :presence => true
validates :count, :presence => true, :numericality => {:greater_than_or_equal_to => 0}
before_create :update_redis
def organization
self.hub.organization.name
end
def user_email
self.user.email
end
private
def user_email
self.user.email
end
end
User model:
class User < ActiveRecord::Base
belongs_to :organization
has_many :posts, :extend => User::Posts
accepts_nested_attributes_for :organization
attr_accessible :email, :password, :password_confirmation, :remember_me, :as => [:default, :admin]
attr_accessible :device_id, :organization_id, :role_ids, :as => :admin
attr_accessible :organization_attributes, :as => [:admin, :manager]
after_save :update_total
end
Hub model:
class Hub < ActiveRecord::Base
devise :token_authenticatable, :trackable
belongs_to :organization, :inverse_of => :hubs
has_many :posts
attr_accessible :location, :organization_id, :as => :admin
validates :organization, :presence => true
validates :location, :presence => true
before_save :ensure_authentication_token
end
Organization model:
class Organization < ActiveRecord::Base
attr_accessible :name, :street_address_1, :street_address_2, :city, :state, :zip_code, :goal_per_hour, :as => [:admin, :manager
]
has_many :hubs
has_many :posts, :through => :hubs, :extend => Organization::Posts
has_many :users
validates :name, :presence => true, :uniqueness => true
end
rails_admin.rb initializer:
config.model Post do
list do
filters [:user, :hub]
items_per_page 200
field :id do
column_width 50
end
field :count do
column_width 35
end
field :user do
column_width 50
end
field :user_email
field :hub do
column_width 50
end
field :organization do
label "Organization"
# searchable :organization # This line doesn't work!!
end
field :created_at do
strftime_format "%m/%d/%y %H:%M"
column_width 90
end
#field :updated_at do
# strftime_format "%m/%d/%y %H:%M"
# column_width 90
#end
end
show do
include_all_fields
field :user_email
field :organization_name, :string do
label "Organization"
end
end
end
Upvotes: 2
Views: 6186
Reputation: 4568
It looks like the documented answer does work - your line
searchable :organization
should be
searchable :name
and that will add an option for Organization (under the "Add Filter" menu) that searches the name field, but it won't add searching on that field to the quick "Filter" input.
Upvotes: 4