Active Admin是一个用于在应用程序中使用管理仪表板的gem.它使用Devise登录用户并admin_user为管理员创建单独的模型.我的应用程序已经使用了设计并将其用户作为user模型.自从我开始使用活动的admin gem之后,在我的路由文件中,即使我的用户已登录,以下行仍然会解析为home #index而不是用户#spaceboard.这在以前登录用户被带到用户的时候工作得很好#dashboard作为根网址.
root :to => 'users#dashboard', :constraints => lambda {|r| r.env["warden"].authenticate? }
root :to => 'home#index'
Run Code Online (Sandbox Code Playgroud)
发生的事情是.authenticate?检查是否admin_user属于(属于Active Admin)登录或不登录我的user模型,这是我需要检查的,所以当我登录到活动管理界面时,我的站点root成为用户#dashboard而不检查是否user已登录.如何.authenticate?检查user登录信息admin_user?
任何帮助或线索将非常感谢
我有一个Post模型,我通过ActiveAdmin访问.它也可以使用acts_as_taggable_on gem进行标记.因此,管理员可以添加,编辑或删除特定帖子中的标签.
在管理面板中为资源添加标记功能的常规方法是在admin/posts.rb中执行此操作:
ActiveAdmin.register Post do
form do |f|
f.inputs "Details", :multipart => true do
f.input :tag_list
# and the other irrelevant fields goes here
end
f.buttons
end
end
Run Code Online (Sandbox Code Playgroud)
但是,我希望从多选表单字段中选择标记,而不是在文本字段中手动输入(就像上面的代码一样).所以我试过这样做:
f.input :tag_list, :as => :select,
:multiple => :true,
:collection => ActsAsTaggableOn::Tag.all
Run Code Online (Sandbox Code Playgroud)
但它没有按预期工作.这实际上创建了带有名称的一些整数值的新标签,并将它们分配给该帖子.有人告诉我需要额外的代码才能使用.
关于如何做到这一点的任何线索?这是我的模型,以防万一:http://pastie.org/3911123
提前致谢.
ruby-on-rails acts-as-taggable-on ruby-on-rails-3 activeadmin ruby-on-rails-3.2
在一个活跃的管理员显示页面中,我有两个面板,第一个是主记录,第二个是关联信息(由has_many),所以show看起来像这样:
panel "Max Amount" do
table_for user.max_amount do
column 'Amount', :amount
column 'time', :updated_at
end
end
Run Code Online (Sandbox Code Playgroud)
我可以在金额列中对此从高到低(或从低到高)排序?
更新:我找到了演示(源https://github.com/gregbell/demo.activeadmin.info/blob/master/app/admin/users.rb这似乎已经排序),但是当你去实际演示网站它不工作.这个功能可能会破坏吗?有解决方法吗?
我有Order模型,属于User模型.
我需要通过用户电子邮件按订单创建过滤器.
我该怎么做?
我的团队在CI流程中使用coveralls.io为我们提供了一个rspec覆盖率分数.我们还将ActiveAdmin gem用于内部使用,并且决定不在我们的测试覆盖范围内涵盖ActiveAdmin功能.有谁知道我们如何从工作服中免除/ app/admin文件夹,以便它不会拖累我们的分数?
continuous-integration ruby-on-rails rspec-rails activeadmin
我正在尝试向ActiveAdmin添加自定义过滤器,这些过滤器最近由Ransack提供支持.不幸的是,ransacker根本没有记录,从网上的少数资源我弄乱了以下(在用户模型中):
ransacker :full_text, formatter: ->(search) {
ids = User.search_in_all_translated(search).map(&:id)
ids = ids.any? ? ids : nil
} do |parent|
parent.table[:id]
end
Run Code Online (Sandbox Code Playgroud)
该search_in_all_translated方法返回一个用户数组,该数组与所有已翻译属性中的搜索字符串匹配.
在管理页面上,定义了以下过滤器:
filter :full_text_in,
label: 'full text search',
as: :string
Run Code Online (Sandbox Code Playgroud)
过滤器本身有效,因此过滤tom将列出所有匹配的记录.但是,滤波器输入中的值切换为["tom"].
在应用过滤器之前:

应用过滤器后:

任何想法如何解决这一问题?
如何在索引活动的admin rails中重命名按钮新文本?例如,我有一个值为"New Book"的按钮,如何将按钮中的文本更改为"New Book Adventure"
我有这样的代码:
action_item :only => :index do
config.clear_action_items!
link_to "New Book Adventure" , "/admin/books/new"
end
Run Code Online (Sandbox Code Playgroud)
但我在索引页面活动管理员中得到重复按钮?
使用Rails 4.2.1和Active Admin 1.0.0.pre2
我有一个有很多Occupancies的公寓模型.我希望管理员能够看到索引中的公寓是否与作为参数传递的日期重叠.我在Apartment上有一个方法
def available_during(start_date, end_date)
return !self.occupancies.any? { |occ| occ.date_range_overlap(Date.parse(start_date), Date.parse(end_date)) }
end
Run Code Online (Sandbox Code Playgroud)
如果公寓的任何占用与两个给定日期重叠,则返回true.该方法date_range_overlap在占用相当自我解释.我似乎无法弄清楚如何使ActiveAdmin的DSL通过该方法进行过滤,甚至可以使表格输入随机参数.
我能够在索引中放置一个显示available_during方法的布尔返回值的列.
if params[:from] && params[:until]
column "available?" do |apt|
apt.available_during(params[:from], params[:until])
end
end
Run Code Online (Sandbox Code Playgroud)
但我似乎只能通过手动输入url中的from和until params来使其工作.
我如何设置任意搜索表单以将用户发送到正确的参数?或者更好的是,在使用该方法的侧边栏中创建一个过滤器?
我正在尝试向Active Admin中的资源添加排序/重新排序.我了解您可以按登录时的不同列进行排序.我想要做的是能够订购商品,以便在前端按特定顺序显示.有关如何实现这一目标的任何想法?
我已经在数据库中有一个排序列.
另外,我想在管理部分中以特定顺序显示项目.
任何人对我如何实现这一点有任何想法?
我创建了一个具有单表继承的多用户,这里是我的模型
# user.rb
class User < ActiveRecord::Base
end
Run Code Online (Sandbox Code Playgroud)
这是用户模型,所有其他模型都是从数据库中的用户继承的,它们是一个模型,用于存储两种类型的用户并保存其类型
# customer.rb
class Customer < User
end
# space_owner.rb
class SpaceOwner < User
end
Run Code Online (Sandbox Code Playgroud)
**当我在活动管理栏中映射这些时,4显示错误**
Showing /home/rabnawaz/.rvm/gems/ruby-2.3.1/bundler/gems/activeadmin-0a5a15b88bff/app/views/active_admin/resource/index.html.arb where line #2 raised:
undefined method `chain' for nil:NilClass
Extracted source (around line #709):
def chain
@chain ||= begin
a = source_reflection.chain
b = through_reflection.chain
chain = a + b
chain[0] = self # Use self so we don't lose the information from :source_type
Run Code Online (Sandbox Code Playgroud)
这是我在创建活动管理员文件以显示用户时遇到的错误
你能给我一个解决方案吗?
这是我用于创建多个用户的设计路线
devise_for :admin_users, ActiveAdmin::Devise.config
ActiveAdmin.routes(self)
devise_for :customers, :controllers …Run Code Online (Sandbox Code Playgroud) activeadmin ×10
ruby-on-rails ×10
ruby ×2
devise ×1
ransack ×1
rspec-rails ×1
sorting ×1
warden ×1