导轨版本
导轨 3.2.1
目标:
仅访问办公室计算机的 ActiveAdmin 登录页面。
代码:
路由文件
约束(:ip => /(^127.0.0.1$)|(^192.168.10.[0-9]*$)/) 做
match 'admin/' => 'admin#login'
Run Code Online (Sandbox Code Playgroud)
结尾
这是行不通的,有什么问题吗?
==========================
我编辑我的 route.rb 跟随代码
constraints(:ip => /(^127.0.0.1$)|(^192.168.10.[0-9]*$)/) do
ActiveAdmin.routes(self)
end
devise_for :admin_users, ActiveAdmin::Devise.config
Run Code Online (Sandbox Code Playgroud)
这是工作!
我知道如何使用 devise 更改密码,但我不知道如何为当前管理员用户创建指向操作的链接。例如在电子邮件下添加链接。
更改密码
这将发送到一个动作调用:
send_reset_password_instructions
Run Code Online (Sandbox Code Playgroud)
我真的找不到 ActiveAdmin 的任何好的文档,官方站点公开了一些示例,但没有真正解释。它不清楚事情在哪里以及如何运作。
我正在寻找一种方法来检查用户是否从模型中登录activeadmin.除非用户已登录,否则应拒绝访问特定属性.我希望这样的内容,但无法找到使其工作的方法:
class Object < ActiveRecord::Base
def should_show?
# find activeadmin user
if ActiveAdmin.current_admin_user?
# activeadmin user is logged in
true
else
# not logged in
false
end
end
end
Run Code Online (Sandbox Code Playgroud) 如何显示 has_many_through 关联列表,其中关联作为列标题,而 through: 值作为表行中的条目?
我有 3 个模型:
class Jobs
attr_accesor :title
has_many :scores
has_many :factors, through: :scores
end
class Scores
attr_accesor :score
belongs_to :job
belongs_to :factor
end
class Factor
attr_accesor :name
has_many :scores
has_many :jobs, through: :scores
end
Run Code Online (Sandbox Code Playgroud)
我希望能够在 Jobs 索引中显示每个 Job 的一行,每个 Factor 的标题作为列标题,以及每个 Job 的分数作为单元格中的值。
我希望必须在app/admin/jobs.rb文件中做这样的事情:
index do |jobs|
column :title
jobs.scores.each do |score|
column(score.factor.name) { |score| score.score }
end
end
Run Code Online (Sandbox Code Playgroud)
并得到这样的输出:
Job | Education | Experience | Leadership | ... |
- - - …Run Code Online (Sandbox Code Playgroud) ruby ruby-on-rails has-many-through ruby-on-rails-3 activeadmin
尝试过滤Active Admin上的资源时遇到问题.
当我将它们应用于标准内容时,过滤器实际上可以正常工作,但这里是多选的.
确实在我的交易模型中:有一个"Deal_goal"属性,我可以选择许多Deal_goal,例如"获取新用户"或"生成热门话题"
以下是我在活动管理表单中输入的方式:
f.input :deal_goal,
:label => "Deal goals",
:as => :select,
:multiple => true,
:collection => DEAL_GOALS
Run Code Online (Sandbox Code Playgroud)
要进行多重选择,我在Deal模型中对其进行序列化
应用程序/模型/ deal.rb
class Deal < ActiveRecord::Base
serialize :deal_goal, Array
Run Code Online (Sandbox Code Playgroud)
我也使用staal.io建议多选('选择'宝石)
我没有做的是在我的索引页面(交易列表)上,对我的Deal_goal属性进行过滤,如果可能的话,在这里有一个多选项,使我能够根据多种目标过滤交易(对于示例:过滤处理目标#1或目标#3)
我尝试了admin/deal.rb下面的两个,但没有一个工作!
filter :deal_goal, :as => :select, :collection => DEAL_GOALS
filter :deal_goal, :as => :multiple_select, :collection => DEAL_GOALS
Run Code Online (Sandbox Code Playgroud)
有人有线索吗?
为了符合WAST安全报告,我需要在activeadmin devise视图中关闭admin用户电子邮件和密码的自动完成功能。
我是通过设计和修改来生成html.erb文件的,因此可以轻松地在用户登录视图上执行此操作,但是看不到使用activeadmin视图执行此操作的简便方法。
我已经检查过设置,找不到任何想法?
我正在尝试使用 Paperclip 在 ActiveAdmin Post 编辑页面填写“图像”字段。导轨 4.0.0,回形针 4.2.0。在 Post 模型中,我添加了以下代码:
has_attached_file :image
validates_attachment :image, content_type: { content_type: [ "image/jpg", "image/jpeg", "image/png" ] }
Run Code Online (Sandbox Code Playgroud)
提交表单后,我有以下错误:
回形针 :: Admin 中的错误::PostsController#update
发布模型缺少 'image_file_name' 所需的 attr_accessor
好像忘记做点什么了。在这一步我错过了什么?好的,我已经手动添加了
attr_accessor :image_file_name
Run Code Online (Sandbox Code Playgroud)
提交后我收到另一个错误
Admin::PostsController#update 中的 NoMethodError
#Post:0x007fb148266e10 的未定义方法`image_content_type'
我不知道该怎么办这个。
在模型中Code有一个名称week_days可能是这样的字段1100110.我希望在ActiveAdmin表单中显示7个复选框,而不是经典输入字段
form do |f|
f.inputs do
f.input :name
f.input :week_days
end
f.actions
end
Run Code Online (Sandbox Code Playgroud)
所以我想在模型中写一个这样的映射器
def week_days_checkboxes
[
['sunday', 1],
['monday', 1],
['tuesday', 1],
['wednesday', 1],
['thursday', 1],
['friday', 1],
['saturday', 1]
]
end
def week_days_checkboxes=(week_days_checkboxes)
@week_days = week_days_checkboxes.reverse.join.to_i(2)
end
Run Code Online (Sandbox Code Playgroud)
然后以这种方式更改表单输入
f.input :week_days_checkboxes, as: :check_boxes
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我需要做什么?
PS:根据字段的每个值,每对的第二个值应为1或0 week_days
非常感谢
在我的应用程序中,我需要更改删除操作的默认确认消息.我已在索引页面上更改了删除操作的默认确认消息,例如
index do
column :title
column :start_date
column :start_time
column :end_date
column :end_time
#actions
actions defaults: false do |post|
item "View", admin_content_path(post)
text_node " ".html_safe
item "Edit", edit_admin_content_path(post)
text_node " ".html_safe
item "Delete", admin_content_path(post), method: :delete, :confirm => "All grades, uploads and tracks will be deleted with this content.Are you sure you want to delete this Content?"
end
Run Code Online (Sandbox Code Playgroud)
结束
这在索引页面上工作正常.我想在显示页面上更改删除操作的默认确认消息.它仍显示默认消息,例如"您确定要删除此内容吗?"
如何在activeadmin中更改批量操作确认对话框的css?
有人知道吗?谢谢.
在我的应用程序中,我有categories,labels 他们都属于products
在管理面板中,用户可以添加产品,创建标签和类别,然后为产品分配类别和标签.
当我创建标签时,名称在标签面板中正确显示(见照片)
问题是标签名称在分配给产品时没有正确显示(见下图),但显示了类别名称.这很奇怪,因为两列都具有相同的设置.
在Admin products panel标签上显示数字Label#1``Label#2等(见下图)
在_navbar.html.erb我有这个代码显示类别和标签...并在那里正确显示.
<ul class="dropdown-menu" role="menu">
<% @categories.each do |category| %>
<li><%= link_to category.name, category %></li>
<% end %>
</ul>
</li>
<li class="dropdown full-width">
<a href="#" class="dropdown-toggle"
data-toggle="dropdown">
Labels
</a>
<ul class="dropdown-menu" role="menu">
<% @labels.each do |label| %>
<li><%= link_to label.label_name, label %></li>
<% end %>
</ul>
</li>
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么吗?我看不出为什么标签显示不正确.
有没有人与活动管理员有相同或类似的问题?
谁能看看这个?
提前致谢
这是 app/admin/category.rb
ActiveAdmin.register Category do
permit_params :name
end
Run Code Online (Sandbox Code Playgroud)
在app/admin/label.rb这里有代码:
ActiveAdmin.register …Run Code Online (Sandbox Code Playgroud)