從控制器: -Rake任務不是在生產模式要求Ruby on Rails的3
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
在開發模式下,該耙任務被觸發。但在生產模式情況下,它不會被觸發。
PS: - 靈感來自rake in background, railscast。沒有什麼rake.log文件在生產模式
如果選項是以任何方式生成的,這是非常危險的。想象一下,如果我傳遞「k ='s'; rm -rf /;'s」。 –
@spike沒有問題..因爲它沒有用戶生成.. –