标签: activeadmin

Permit_params 不适用于自定义创建操作

我不明白为什么 Permit_params 不能与自定义创建操作一起使用。

例如,我们以基本的 AdminUser 资源为例。

默认情况下一切正常。我们有:

ActiveAdmin.register AdminUser do
  permit_params :email, :password, :password_confirmation

  form do |f|
    f.inputs "Admin Details" do
      f.input :email
      f.input :password
      f.input :password_confirmation
    end
    f.actions
  end
end
Run Code Online (Sandbox Code Playgroud)

但是,一旦我们添加自定义创建,由于某些原因,permit_params 将不再起作用。

ActiveAdmin.register AdminUser do
  permit_params :email, :password, :password_confirmation

  form do |f|
    f.inputs "Admin Details" do
      f.input :email
      f.input :password
      f.input :password_confirmation
    end
    f.actions
  end

  controller do
    def create
      AdminUser.create(params[:admin_user])
      do_some_magic_stuff_here
      redirect_to backend_admin_users_path, notice: 'Custom create'
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

我在“AdminUser.create(params[:admin_user])”行中收到错误“ActiveModel::ForbiddenAttributesError”

尝试了很多可能的解决方案,只有一个对我有用,但我真的不喜欢这个:

def create
  AdminUser.create(params[:admin_user].permit(:email, :password, :password_confirmation))
  do_some_magic_stuff_here
  redirect_to admin_admin_users_path, …
Run Code Online (Sandbox Code Playgroud)

activeadmin strong-parameters ruby-on-rails-4

1
推荐指数
1
解决办法
3056
查看次数

我可以在 ActiveAdmin 中自定义删除警告吗

在 Rails 应用程序中,销毁操作伴随着警告是很常见的 - “您确定要删除它吗?” 典型的代码如下所示:

link_to("Destroy", "http://www.example.com", :method => :delete, :confirm => "Are you sure?")
Run Code Online (Sandbox Code Playgroud)

ActiveAdmin 中是否有一种方法可以仅为一个模型(而不是全局)自定义确认字符串?我看到该字符串是从active_admin.delete_confirmation翻译键加载的。该字符串可以是特定于模型的吗?

ruby-on-rails-3 activeadmin

1
推荐指数
1
解决办法
3574
查看次数

ActiveAdmin:如何添加第二个自定义索引表页面

某些管理员的用户需要有两个表视图,例如一个模型Bar:他们已经拥有的默认表视图和具有不同列集的附加新表视图。

\n\n

设置是这样的:

\n\n
ActiveAdmin.register Bar do\n  # \xe2\x80\xa6\n  index do\n    column :name\n    column :phone\n    column :address\n  end\n  # \xe2\x80\xa6\n
Run Code Online (Sandbox Code Playgroud)\n\n

预计就像添加另一个index块一样简单,如下所示:

\n\n
ActiveAdmin.register Bar do\n  # \xe2\x80\xa6\n  index do\n    column :name\n    column :price\n    column :bartender\n  end\n\n  index name: \'location\' do\n    column :name\n    column :phone\n    column :city\n    column :country\n  end\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后只需在某处获取附加选项卡即可。

\n\n

正如您可能猜到的那样,事情并不那么简单。ActiveAdmin 现在对虚构index name:属性一无所知,只是默默地选择第一个index块,忽略第二个index块。

\n\n

ActiveAdmin 文档展示了一种轻松添加第二/第三/等索引页面的方法,但类型不同:

\n\n
index as: :grid do |bar|\n  link_to(image_tag(bar.photo_path), admin_bar_path(bar))\nend\n
Run Code Online (Sandbox Code Playgroud)\n\n

很好,但是如何添加具有不同列的索引表视图的副本? …

ruby activeadmin

1
推荐指数
1
解决办法
2955
查看次数

外键在 rails 项目中的 activeadmin 中不起作用

我在 rails 项目的 activeadmin 中遇到了一个奇怪的问题。
我创建了新的 rails 项目和两个表,如下所示。

rails g model category title:text

rails g model subcategory category:references title:text
Run Code Online (Sandbox Code Playgroud)

子类别属于具有外键“category_id”的类别,通过引用关键字。我已将类别和子类别模型更改如下。

class Category < ActiveRecord::Base
    has_many :subcategories, dependent: :destroy
end
Run Code Online (Sandbox Code Playgroud)

class Subcategory < ActiveRecord::Base
  belongs_to :category
  default_scope -> { order(created_at: :desc) }
end
Run Code Online (Sandbox Code Playgroud)

我在 Gemfile 中添加了 activeadmin gem 并安装了。

ActiveAdmin.register Category do

    permit_params :title

end

ActiveAdmin.register Subcategory do

    permit_params :category_id, :title

end
Run Code Online (Sandbox Code Playgroud)

我登录成功。
我添加了新类别。如果我单击子类别以创建新的子类别,类别项会带来像图像这样的错误。 在此处输入图片说明

我想显示我添加的类别。此致。

ruby ruby-on-rails activeadmin

1
推荐指数
1
解决办法
1091
查看次数

带有 Active Admin 的字体真棒

是否可以将 font awesome 与 activeadmin 集成

我正在使用 gem 并且我已经将它添加到

Rails.application.config.assets.precompile

index do
  column('Inmate') do |letter_response|
    span do
      link_to "E", edit_admin_inmate_path(letter_response.inmate)
      #link_to fa_icon('pencil'), edit_admin_inmate_path(letter_response.inmate), :title =>  'Edit'
      #link_to (content_tag(:i, fa_icon('pencil'))), edit_admin_inmate_path(letter_response.inmate)
    end
    span do
      letter_response.inmate_full_name
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

暂时我正在使用“E”进行编辑,我已经尝试过其他人因为它没有在前端加载而被注释掉。

请建议

activeadmin ruby-on-rails-4

1
推荐指数
1
解决办法
1687
查看次数

链接到活动管理中的自定义多态关联操作

我正在与 Active Admin 合作。目前,我有一个索引页面,允许我查看用户标记的所有资源。鉴于存在各种类型的资源,我的 Flagg 类和各种资源表之间存在多态关系。

在我的索引页面中,在 Active Admin 上,我希望能够链接到属于特定资源类型的相应显示页面。

我已经让我所有的代码都能工作了,但我不喜欢我想出的解决方案。

我如何改进我当前的解决方案,这样我就不必写一个尴尬的条件?

楷模

class Flag < ActiveRecord::Base
  #create relationships with user and flag model
  belongs_to :flaggable, polymorphic: true
end

class MilitaryResource < ActiveRecord::Base
  has_many :flags, as: :flaggable, :dependent => :destroy  
end

class DistrictResource < ActiveRecord::Base
  has_many :flags, as: :flaggable, :dependent => :destroy  
end

class SchoolResource < ActiveRecord::Base
  has_many :flags, as: :flaggable, :dependent => :destroy  
end
Run Code Online (Sandbox Code Playgroud)

活动管理员

ActiveAdmin.register Flag do

  #parameters permitted to create military resources
  permit_params :id, :user_id, :flaggable_id, :flaggable_type, …
Run Code Online (Sandbox Code Playgroud)

ruby polymorphism ruby-on-rails polymorphic-associations activeadmin

1
推荐指数
1
解决办法
1032
查看次数

在 ActiveAdmin Urls 中使用 Slug

我已将 Rails 控制器设置为使用 slugs 而不是 ids 来识别“拟合”(用于显示/编辑操作),因此我可以使用这样的 url 来访问显示页面:

http://localhost:3000/datasheets/slug-attribute-of-fiting

在routes.rb

resources :datasheets, only: [:index, :show, :edit], param: :slug
Run Code Online (Sandbox Code Playgroud)

在 datasheets_controller.rb 中

 def show
    fitting = Fitting.where(slug:(params[:slug])).first
    pdf = DatasheetPdf.new(fitting)
    send_data pdf.render, filename: "#{fitting.slug}-datasheet-#{Date.today}.pdf", type: 'application/pdf', disposition: 'inline'
  end
Run Code Online (Sandbox Code Playgroud)

对于上面提到的 url 处的正常显示视图,这一切都正常工作,但是在添加 ActiveAdmin gem 时会出现问题(它会生成自己的控制器,据我所知这些控制器无法访问)。如果您尝试在活动管理仪表板中编辑“拟合”,您将被定向到http://localhost:3000/admin/fittings/slug-attribute-of-fiting/edit,它返回以下错误:

ActiveRecord::RecordNotFound in Admin::FittingsController#edit
Couldn't find Fitting with 'id'=slug-attribute-of-fiting
Run Code Online (Sandbox Code Playgroud)

鉴于我无法访问活动的管理控制器(对吗?)我如何拦截 slug 并使用它来提供 id。

谢谢

ruby-on-rails activeadmin

1
推荐指数
1
解决办法
504
查看次数

如何让相关记录显示在活动管理员中?

我有一个注册应用程序,它记录一个Participant模型,其中有两个悬挂模型 -Student_DetailVolunteer_Detail. Participant has_oneStudent_DetailVolunteer_Detail

还有第三种模式,Group. Group记录哪些参与者相互匹配。由于参与者可能涉及一个以上的GroupGroup可能有不止一个Participant,我认为has_and_belongs_to_many是最佳组合ParticipantGroup

一个连接表存在于GroupParticipant

我是 Rails 的新手,我正在使用活动管理员来管理这个应用程序。

当我登录时,我可以看到我作为资源生成的每个模型,但我希望能够在查看Participant选项卡时显示每个参与者的相关详细信息(学生/志愿者/组)。目前,它仅显示仅适用于该特定模型的属性,而不显示任何关联模型的属性。

这是我的模型的 active_admin 资源代码Participant

    ActiveAdmin.register Participant do

                            permit_params :first_name, :last_name, :gender, :email, :birthdate, :phone, 
                                              :street_name, :city, :state, :zip, :role, student_details_attributes: [:nationality, :religion, :need_ride, 
                                            :has_spouse, :spouse_name, :english_level, :expectation, :length_of_stay, :exact_length, :volunteer_id, 
                                            :matched, :returned_home, :participant_id], volunteer_details_attributes: [:date, :importance, :story, …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails has-and-belongs-to-many activeadmin rails-activerecord

1
推荐指数
1
解决办法
1016
查看次数

ActiveAdmin has_many 具有自定义收集顺序

鉴于以下模型:

class WorkoutProgram < ApplicationRecord
  has_many :workouts, dependent: :destroy
end

class Workout < ApplicationRecord
  belongs_to :workout_program
end
Run Code Online (Sandbox Code Playgroud)

有没有办法在 ActiveAdmin has_many 输入中设置自定义顺序?我不想启用拖放,所以sortable不是一个选项。这个想法是按照编辑 .csv 文件时添加的相同顺序显示锻炼WorkoutProgram

作为一种解决方法,WorkoutProgram仅为此目的使用另一个 has_many 关系。所以我添加到模型中:

has_many :ordered_workouts, -> { ordered_by_id },
           class_name: Workout.to_s, dependent: :destroy, inverse_of: :workout_program
Run Code Online (Sandbox Code Playgroud)

然后在 ActiveAdmin 页面中使用它,如下所示:

form.has_many :ordered_workouts, allow_destroy: true do...
Run Code Online (Sandbox Code Playgroud)

activerecord ruby-on-rails activeadmin

1
推荐指数
1
解决办法
613
查看次数

活动存储图像未显示在 activeadmin rails 中

使用主动存储来存储工作正常的图像。我面临的问题是当我image_tag image显示#而不是图像时。

这是代码 products.rb

has_many_attached :photos
Run Code Online (Sandbox Code Playgroud)

在 active_admin

row "Images" do |p|
  p.photos.attachments.each do |photo|
    image_tag photo
  end
end
Run Code Online (Sandbox Code Playgroud)

它不显示图像。它检查 byebug 网址也很好,但图像不显示,它显示了这一点

在此处输入图片说明

只有这个有效

row "Images" do |p|
    image_tag p.photos.attachments.last
end
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails activeadmin rails-activestorage ruby-on-rails-5.2

1
推荐指数
1
解决办法
1020
查看次数