【发布时间】:2011-07-07 10:48:36
【问题描述】:
来自控制器:-
call_rake :parse_venue, :venue_list_id => venue_list.id
def call_rake(task, options = {})
options[:rails_env] ||= Rails.env
args = options.map { |n, v| "#{n.to_s.upcase}='#{v}'" }
system "rake #{task} #{args.join(' ')} --trace 2>&1 >> #{Rails.root}/log/rake.log &"
end
在开发模式下会触发此 rake 任务。但在生产模式下不会触发。
PS:- 灵感来自rake in background, railscast。生产模式下 rake.log 文件中没有任何内容
【问题讨论】:
-
如果选项是用户以任何方式生成的,这是非常危险的。想象一下,如果我通过 "k='s'; rm -rf /; 's"。
-
@spike 没问题.. 因为它不是用户生成的..
标签: ruby-on-rails ruby-on-rails-3 rake