Ruby on rails 向非ActiveRecord方法提交ActiveAdmin表单
在ActiveAdmin中,我有一些方法可以测量用户正在使用的功能。这些方法特定于ActiveAdmin,不会在应用程序中使用。例如,该方法可以告诉我们从2013年7月5日到2013年9月15日,所有公司都创建了多少份每日报告。该方法以散列形式返回数据 在ActiveAdmin界面中,我需要一个表单。在此表单中,我将指定查询的时间范围、“创建或更新”选项以及要跟踪的特定数据类型。我希望表格看起来像这样:Ruby on rails 向非ActiveRecord方法提交ActiveAdmin表单,ruby-on-rails,forms,activeadmin,Ruby On Rails,Forms,Activeadmin,在ActiveAdmin中,我有一些方法可以测量用户正在使用的功能。这些方法特定于ActiveAdmin,不会在应用程序中使用。例如,该方法可以告诉我们从2013年7月5日到2013年9月15日,所有公司都创建了多少份每日报告。该方法以散列形式返回数据 在ActiveAdmin界面中,我需要一个表单。在此表单中,我将指定查询的时间范围、“创建或更新”选项以及要跟踪的特定数据类型。我希望表格看起来像这样: ActiveAdmin.register_page "Metrics" do form d
ActiveAdmin.register_page "Metrics" do
form do |f|
# radio buttons for yearly, monthly...etc. calls metrics_histogram_by_relative
# one option is 'range'. When selected, it calls metrics_histogram_by_range
# renders a small range text box
# radio buttons for created or updated
# check boxes for data types
# check boxes for companies, default: all
# f.submit
end
range方法的标头如下所示:
def metrics_histogram_by_range(start_day, end_day, updated_or_created,
data_types=[:itbs, :projects, :daily_report_entries, :schedules]),
companies = Company.find_each)
def metrics_histogram_by_relative(time_span, updated_or_created,
data_types=[:itbs, :projects, :daily_report_entries, :schedules],
companies = Company.find_each))
相对时间方法标头如下所示:
def metrics_histogram_by_range(start_day, end_day, updated_or_created,
data_types=[:itbs, :projects, :daily_report_entries, :schedules]),
companies = Company.find_each)
def metrics_histogram_by_relative(time_span, updated_or_created,
data_types=[:itbs, :projects, :daily_report_entries, :schedules],
companies = Company.find_each))
其中“time_span”将是一个字符串,“yearly”、“monthly”、“weekly”或“daily”
我不知道如何连接表单,以便输入将数据提交给这些方法,并获得响应。如果选择了范围单选按钮,则表单需要按范围提交到metrics\u histogram\u。否则,它将按度量值提交直方图。有没有办法做到这一点,或者我需要结合使用这些方法?您必须覆盖默认的ActiveAdmin创建方法。在表单块后插入与此类似的代码:
controller do
def create
if permitted_params[:metrics][:radios] == "radio_relative"
# Call metrics_histogram_by_relative(). You can access the form values in the array: permitted_params[:metrics]
else
# Call metrics_histogram_by_range()
end
# You can do changes in Metrics using the global variable.
@metrics = Metrics.new
@metrics.companies = "all" # The other attributes not changed here will set up by the filled form.
create! do |succes, failure|
end
end
end