Похоже, вам, возможно, придется создать собственное действие и представление. Один из способов сделать это — использовать этот подключаемый модуль настраиваемых действий. Здесь также есть руководство по созданию пользовательского действия. . Я также использовал SmarterCSV, и он отлично работает.
Чтобы зарегистрировать пользовательское действие в Rails Admin, вы должны сделать это в config/initializers/rails_admin.rb:
module RailsAdmin
module Config
module Actions
class YourClass < RailsAdmin::Config::Actions::Base
RailsAdmin::Config::Actions.register(self)
##code here, as explained more below
end
end
end
end
В этом классе вы можете наследовать любое из базовых действий. Итак, чтобы зарегистрировать пользовательский частичный файл, в этом классе вы должны сделать:
# View partial name (called in default :controller block)
register_instance_option :template_name do
:your_class
end
Частичные части вашего _your_class должны находиться в app/views/rails_admin/main/, вы можете обрабатывать форму с помощью multipart. Я не включаю частичный код, если вы хотите, чтобы я попробовал его, дайте мне знать.
Вероятно, вы также захотите выполнить действие над областью действия модели:
register_instance_option :collection? do
true
end
И введите код вашего контроллера. Вероятно, было бы лучше всего обрабатывать обработку здесь, например:
register_instance_option :controller do
Proc.new do
@order = Order.import(params[:file])
f = SmarterCSV.process(file.tempfile)
f.each do |r|
#combine date and time fields
r[:date_time] = [r[:date],r[:time]].join(' ')
Order.create("date" => r[:date_time])
end
end
end
Затем ваше действие должно быть зарегистрировано в RailsAdmin::Config::Actions следующим образом (этот код был помещен в config/initializers/rails_admin.rb):
module RailsAdmin
module Config
module Actions
class ApproveReview < RailsAdmin::Config::Actions::Base
RailsAdmin::Config::Actions.register(self)
end
end
end
end
Затем пользовательское действие должно быть указано в конфигурации действий в config/initializers/rails_admin.rb:
RailsAdmin.config do |config|
config.actions do
dashboard
index
new
your_class
show
edit
delete
end
end
В учебнике есть больше деталей, но я думаю, что это должно быть довольно солидным началом!
person
Jordan Davis
schedule
07.11.2013