我有这个系统,我使用ActiveAdmin自动化后端,我想知道是否有人尝试使用ActiveAdmin的表进行就地编辑.
我看到一些有用的场景:键值表(如State,Category等)和master-detail视图(Order和OrderItems)......
有没有人试图实现它?有什么好的指针吗?
我正在构建一个以ActiveAdmin作为主管理界面的多租户应用.我已经使用acts_as_tenant gem来很好地分离数据.
我已将AdminUser模型用作所有用户的用户模型对象.
为了添加其他用户,AdminUser也作为租户的范围.
这是在抛弃登录,因为当ActiveAdmin/Devise尝试进行身份验证时,我认为它首先点击了find_tenant过滤器,如下所示:
class ApplicationController
set_current_tenant_through_filter
before_filter :find_tenant
def find_tenant
if admin_user_signed_in?
set_current_tenant(Company.find(current_admin_user.company_id))
end
end
Run Code Online (Sandbox Code Playgroud)
不确定如何解决这个问题...我希望用户登录,然后应用程序从登录用户获取company_id并设置租户,ActiveAdmin上显示的所有数据都通过该租户确定范围(此部分适用于acts_as_tenant gem如果我可以通过登录).
谢谢
我正在使用Rails 3.2和ActiveAdmin 0.4.4开发一个应用程序.我的模型名为Teaser(/app/models/teaser.rb):
class Teaser < ActiveRecord::Base
attr_accessible :img, :name, :url
validates :img, :name, :presence => true
mount_uploader :img, TeaserUploader
end
Run Code Online (Sandbox Code Playgroud)
我添加了ActiveAdmin(/app/admin/teaser.rb):
# encoding: UTF-8
ActiveAdmin.register Teaser do
form do |f|
f.inputs "Teaser" do
f.input :name, :label => '?????'
f.input :url, :label => '??????'
f.input :img, :as => :file, :label => '????????'
end
f.buttons
end
end
Run Code Online (Sandbox Code Playgroud)
现在,当我去'http:// localhost:3000/admin/teasers'时,我收到以下错误:
显示C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activeadmin-0.4.4/app/views/active_admin/resource/index.html.arb第1行引发:收集不是分页范围.在调用之前设置collection.page(params [:page]).per(10):paginated_collection.
当我在linux上测试我的应用程序时,我得到了同样的错误(Ubuntu 12.04).
我可以通过这种方式解决这个问题(/app/admin/teaser.rb):
# encoding: UTF-8
ActiveAdmin.register Teaser, :as => 'Somename' do
Run Code Online (Sandbox Code Playgroud)
但是如果我使用这种方法,我就无法使用/app/config/locales/XX.yml来翻译这个模型
所有其他模型都正常工作.
如果要编辑的对象具有特定状态,我想隐藏编辑路径.
我怎样才能做到这一点?
在调用controller.load_and_authorize_resource时出现以下错误
protected method `authorize!' called for #<Admin::ProjectsController:0x1405de80>
Run Code Online (Sandbox Code Playgroud)
捆绑更新后就会发生这种情况.
Gem文件包含以下条目,
gem "activeadmin" , git: 'git://github.com/gregbell/active_admin.git'
Run Code Online (Sandbox Code Playgroud)
活动管理员版本:0.5.1
提前致谢.
如何为以下ActiveAdmin代码编写控制器和功能规范:
# app/admin/organization.rb
ActiveAdmin.register Organization do
batch_action :approve do |selection|
Organization.find(selection).each {|organization| organization.approve }
redirect_to collection_path, notice: 'Organizations approved.'
end
end
Run Code Online (Sandbox Code Playgroud)
这是我的功能规格.它找不到ActiveAdmin在弹出菜单中加载的"批处理操作".
# spec/features/admin/organization_feature_spec.rb
require 'spec_helper'
include Devise::TestHelpers
describe 'Admin Organization' do
before(:each) do
@user = FactoryGirl.create(:admin_user)
login('admin@company.com', 'password1')
end
it 'approves in batch' do
organization = FactoryGirl.create(:organization)
visit admin_organizations_path
check 'collection_selection_toggle_all'
click_link 'Batch Actions'
click_link 'Approve Selected'
organization.reload
organization.state.should eq 'approved'
end
end
Run Code Online (Sandbox Code Playgroud)
版本
Ruby 2.0,Rails 4.0,PSQL 9.3
在ActiveAdmin文档中有一个示例:
ActiveAdmin.register_page "My Page" do
content do
para "Hello World"
end
end
Run Code Online (Sandbox Code Playgroud)
我在哪里放这个代码?文件说:
在上面的示例中,将在/ admin/my_page创建一个新页面,标题为"我的页面",内容为"Hello World".
这意味着这样的文件会以某种方式自动创建?不过,我创建了一个名为import.rbapp/admin的文件,菜单中的Import项确实出现了.但是,我无法使用HTML,因为此文件是.rb而不是.erb.我想,为了能够使用html,我需要在方法中创建一个partial和den渲染它content.但当我看到下面app/views没有admin文件夹(只layouts).这是否意味着我需要创建该文件夹admin下app/views?如果是的话,我应该把我的部分放在哪里 - 直接放在app/views/admin新文件夹下面或下面app/views/admin/import?
我很抱歉菜单问题,但ActiveAdmin的文档非常适中.如果有人能够提供有关在ActiveAdmin中为新页面创建和添加内容所需步骤的详细说明,我将不胜感激.
我正在使用ActiveAdmin rails gem并为我的某个模型配置了几个过滤器.对于其中一个字符串过滤器,我想将搜索类型下拉列表("包含","等于","开始时间","结束时")设置为默认为"等于"而不是"包含".
此外,类似地,我想将我的一个数字过滤器设置为默认为"大于"而不是"等于".
这是相关配置......
filter :message
filter :likes_count, as: :numeric
Run Code Online (Sandbox Code Playgroud) 我有两个相关的模型,Bunny has_many BunnyData(属于Bunny).从特定Bunny的显示页面(在Active Admin中),我想创建一个链接来创建相关的BunnyData.我尝试了几种不同的方法,没有成功,我正在尝试这样做:
sidebar :data, :only => :show do
link_to 'New Data', new_admin_bunny_datum(:bunny_id => bunny.id)
end
Run Code Online (Sandbox Code Playgroud)
生成的链接最终会像:
.../admin/bunny_data/new?bunny_id=5
但是当你转到那个页面时,Bunny的下拉列表被设置为空白默认值,而不是显示ID为5的Bunny名称.
提前致谢.
我遇到Active Admin问题.以下是版本:
红宝石'2.2.1'
rails'4.2.0'
activeadmin:1.0.0.pre1
arbre:1.0.3(提到这个,因为它似乎与我的问题有关联)
我们升级到rails 4.2并且还必须升级activeadmin(从0.5开始).经过几次调整(特别是授权系统),一切似乎都很好,除了一个大问题:我只能访问索引页面.当转到带有ID的页面时(例如:" http:// localhost:3000/admin/companies/2968 "),我收到此错误:
没有路由匹配{:action =>"edit",:controller =>"admin/companies",:format => nil,:id =>#{User id:nil,[所有具有nil值的用户属性]}}.缺少必需的密钥:[:id]
看起来param [:id]以某种方式变为空用户,这当然会让它破裂.
这就是我所知道的:
当我将一个binding.pry放在我的ApplicationController上并检查params时,我得到{:action =>"edit",:controller =>"admin/companies",:format => nil,:id => 2968}(所以这里没问题)
引发错误的行是:
active_admin /资源/ show.html.arb
- > arbre/element/builder_method.rb #insert_tag
- > arbre/element/builder_method.rb #build_tag
- > actionpack/actiondispatch/journey/formatter#generate(调用此方法时,path_parameters ID值已损坏,从而引发错误)
知道为什么我的ID参数没有正确解释/我可以进一步查看的地方吗?
编辑>>我在我的routes.rb中有这个
ActiveAdmin.routes(self)
devise_for :admin_users, ActiveAdmin::Devise.config
Run Code Online (Sandbox Code Playgroud)
并且生成的路线看起来很好用rake路线(在这个特定的例子中,我有admin/companies#edit admin_company GET /admin/companies/:id(.:format)
EDIT2 >>如果不清楚,这种情况发生在所有节目页面上.如果我去http:// localhost:3000/admin/projects /例如,它工作正常,但http:// localhost:3000/admin/projects/23815给了我id =空用户以及
activeadmin ×10
ruby ×2
actionpack ×1
arbre ×1
cancan ×1
devise ×1
filter ×1
multi-tenant ×1
rspec2 ×1