でフォームを追加します。あなたのような何かを追加することができますyour_model.rbファイルアプリ/管理/中のSO
カスタムアクションとビューを作成する必要があります。これを行う1つの方法はthis custom actions pluginを使用することです。 There is also a tutorial about how to build a custom action here.私もSmarterCSVを使いました。それはすばらしく動作します。
はRailsの管理とカスタムアクションを登録するには、設定/初期化子/ 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
をこのクラスでは、the base actionsのいずれかを継承することができます。だから、あなたがどうなるというクラスで、カスタム部分を登録するには:あなたの_your_classパーシャルアプリ/ビュー/ rails_admin//メインになっている必要があり
# View partial name (called in default :controller block)
register_instance_option :template_name do
:your_class
end
、あなたはマルチパートでフォームを処理することができます..私は含めていませんよあなたが私にスイングを取らせたいなら、それを私に知らせてください。
おそらく、また、モデルの範囲であなたの行動をお勧めします:
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
チュートリアルで詳細がありますが、これはかなり安定したスタートになるはずです。
アップロードに使用している宝石はどれですか?あなたが欲しいものバックエンドでファイルをアップロードするか、バックグラウンドでcsv/xlsデータを処理しますか? –
ファイルをアップロードしてバックグラウンドで処理したいだけです。ファイルをポストしてから、非同期ジョブをオフにすることができます。私は必ずレール管理から直接このファイルを使ってクラスのモデルやインスタンスを管理しているわけではありません。私は人々がそこを通ってアップロードする方法が必要です。 – randombits
あなたはそれをやることができます。最も良い方法は、クリップや搬送波の宝石を使用してファイルをアップロードすることです。 rubyはそれを処理するcsvライブラリを持っています。いつでも宝石を使うか、単純なスレッドを使ってバックグラウンドで処理します。 –