Rails 向导式功能的 rails 数据库设计

haitongz · 2014年03月10日 · 最后由 swordray 回复于 2014年03月11日 · 2378 次阅读

想做一个向导式功能的网站: 在每一步做某一种操作,每种操作的参数个数可能不同,参数内容也可能不同; 比如: 第一步做 AAA 其需要提供参数 aa,ab,ac 第二步做 BBB 其需要提供参数 bb,bc 第三步做 CCC。。。 我想到的是至少有一张数据库表, 记录执行了什么命令(AAA --aa=xx --ab=xx --ac=xx),结果是什么,执行时间。 id, command, result

那么在 rails 里,有没有优雅一点的办法,外理 AAA,BBB,CCC, 要专门为它们建 model 吗 如果不建的话,又怎么更好地在 views 中收集数据

谢谢大家

AAA,BBB,CCC 是什么?

#1 楼 @Rei ruby 或者 shell 脚本

运维吗,把每行记录下来,用正则匹配命令、参数、环境变量

#3 楼 @swordray 我希望这些命令能通过 web form 进行选择或者填写,不要全部写,比如 AAA --aa=xx --bb=xx --cc=xx 那么我希望在 web 界面只选择要填写 xx

#4 楼 @haitongz

标准的增删改查

class Deploy::Command < ActiveRecord::Base
  has_many :arguments
end

class Deploy::Argument < ActiveRecord::Base
  belongs_to :commands
end
= form_for command do |f|
  = f.text_field :name
  - command.arguments.each do |argument|
    = f.fields_for :arguments, argument do |sf|
      = sf.text_field :name
      = sf.text_field :value

#2 楼 @haitongz 在这之前如何提防 rm / -r

#6 楼 @Rei 这的确是个好问题,我之前都没有考虑过,的确有这个风险的,太恐怖了

#5 楼 @swordray 貌似你的代码的确可以解决,容我再想想,非常感谢 @swordray @Rei

#6 楼 @Rei ActiveRecord::Enum + ActiveModel::Validation

需要 登录 后方可回复, 如果你还没有账号请 注册新账号