我需要在ActiveAdmin页面中添加一些指向应用程序某些页面的链接.我可以使用侧边栏来完成此操作,但我必须为每个资源重复代码.有没有向标题添加自定义链接?或者为所有资源定义一个侧边栏?
我正在使用Active Admin gem,我想隐藏或删除每个模型的索引页面上的链接,允许用户以CSV,XML或JSON格式下载数据.有没有办法做到这一点?
我正在使用paperclip将图像附件添加到多个模型和Activeadmin以提供简单的管理界面.
我在activeadmin模型文件中有这个代码,允许上传图片:
form :html => { :enctype => "multipart/form-data"} do |f|
f.inputs "Details" do
f.input :name
f.input :subdomain
end
f.inputs "General Customisation" do
f.input :standalone_background, :hint => (("current image:<br/>").html_safe + f.template.image_tag(f.object.standalone_background.url(:thumb))).html_safe, :as => :file
end
end
Run Code Online (Sandbox Code Playgroud)
哪个工作正常.我正在附加的所有图像都是可选的,因此我想让用户选择删除以前添加的图像,但无法解决如何在Activeadmin中执行此操作.我见过的所有示例都是针对通过单独的has_many关联管理附件而不是主模型的一部分的情况.
有谁知道这样做的方法?
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中为新页面创建和添加内容所需步骤的详细说明,我将不胜感激.
我有一个ruby on rails项目,ruby2和rails4.我已经安装了bootstrap-sass gem.我最近安装了activeadmin gem,它将一个文件active_admin.css.scss添加到我的app/styles文件夹中:
// SASS variable overrides must be declared before loading up Active Admin's styles.
//
// To view the variables that Active Admin provides, take a look at
// `app/assets/stylesheets/active_admin/mixins/_variables.css.scss` in the
// Active Admin source.
//
// For example, to change the sidebar width:
// $sidebar-width: 242px;
// Active Admin's got SASS!
@import "active_admin/mixins";
@import "active_admin/base";
// Overriding any non-variable SASS must be done after the fact.
// For example, to change the default status-tag …Run Code Online (Sandbox Code Playgroud) 我无法弄清楚如何在Active Admin中使用嵌套资源输入助手,以允许我更新"父"记录的相关记录的值.
我正在尝试生成更新的模型是这样的:
class Page < ActiveRecord::Base
has_many :page_attributes
accepts_nested_attributes_for :page_attributes, allow_destroy: true
end
Run Code Online (Sandbox Code Playgroud)
哪里PageAttribute有两个属性,:key和:value
而ActiveAdmin模型是:
ActiveAdmin.register Page do
permit_params page_attributes_attributes: [:key, :value, :_destroy => true]
form do |f|
f.inputs do
f.has_many :page_attributes, allow_destroy: true, heading: 'Parts' do |page_part|
page_part.input :key
page_part.input :value
end
end
f.actions
end
end
Run Code Online (Sandbox Code Playgroud)
但是当我调用http://localhost:3000/admin/pages/2/edit并更改现有属性的值时(或者当我检查"删除"复选框时),会发生什么,PageAttribute即创建模型的新记录并保持现有关联不变.
我通读了有关嵌套资源的Active Admin文档,以及一堆SO帖子,但无法弄清楚我做错了什么:(
我有两个相关的模型,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仪表板上创建一个表:
columns do
column do
panel "New Mentor's requests" do
table_for User.where(mentor_request: true) do |t|
t.column("Id") { |user| user.id }
t.column("Name") { |user| user.account.full_name }
t.column("Email") { |user| user.account.email }
t.column("Organization") { |user| user.organization.name }
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
有没有办法像其他资源一样添加"动作"?我的意思是"新的,编辑,删除",但一个自定义的.
我尝试了"actions"标签,但是我得到了一个未定义的方法.
我是rails的新手,并尝试在最新版本的ruby 2.3.0和rails5上添加活动管理员.我在gem文件中添加了以下行:
gem 'inherited_resources', github: 'activeadmin/inherited_resources'
gem 'activeadmin', github: 'activeadmin'
Run Code Online (Sandbox Code Playgroud)
捆绑安装,然后我运行服务器,我收到以下错误:
C:/RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/bundler/gems/inherited_resources-6fa6e5b9d29c/lib/inherited_resources.rb:30:in `block in <top (required)>': break from proc-closure (LocalJumpError)
from C:/RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/lazy_load_hooks.rb:43:in `instance_eval'
from C:/RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/lazy_load_hooks.rb:43:in `execute_hook'
from C:/RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/lazy_load_hooks.rb:50:in `block in run_load_hooks'
from C:/RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/lazy_load_hooks.rb:49:in `each'
from C:/RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/lazy_load_hooks.rb:49:in `run_load_hooks'
from C:/RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/gems/actionpack-5.0.1/lib/action_controller/api.rb:145:in `<class:API>'
from C:/RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/gems/actionpack-5.0.1/lib/action_controller/api.rb:88:in `<module:ActionController>'
from C:/RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/gems/actionpack-5.0.1/lib/action_controller/api.rb:5:in `<top (required)>'
from C:/RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:293:in `require'
from C:/RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:293:in `block in require'
from C:/RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:259:in `load_dependency'
from C:/RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:293:in `require'
from C:/RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/gems/jbuilder-2.6.1/lib/jbuilder/railtie.rb:20:in `block (2 levels) in <class:Railtie>'
from C:/RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/lazy_load_hooks.rb:43:in `instance_eval'
from C:/RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/lazy_load_hooks.rb:43:in `execute_hook'
from C:/RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/lazy_load_hooks.rb:33:in `block in on_load'
from …Run Code Online (Sandbox Code Playgroud)