Я хочу запустить задачу прекомпиляции ресурсов внутри приложения rails, так как у меня было много зависимостей, которые изменят код, в этом случае все время, когда они меняются, мне нужно запустить скрипт, поскольку я не могу предоставить серверу доступ к ним, так что я, обеспечивающий графический интерфейс для них от этого только они могут запустить скрипт, так что, я построил пользовательский интерфейс для выполнения задачи с некоторым параметром, какrun rake task in rails application
system("Template='#{params[:template]}' Theme='#{params[:theme]}' rake assets:precompile)
я получаю два значения из пользовательского интерфейса (params [: template], params [: theme]). Еще одна вещь, которую я хочу запустить эту задачу на другом пути (путь к сайту), означает, что пользовательский интерфейс стороны администратора должен выполнять эту задачу в каталоге сайта,
if(params[:theme_script] == "true")
template=Template.where(:name => params[:template]).first
if template
theme = template.themes.where(:name => params[:theme]).first
if theme
# Dir.chdir "#{THEMEPATH}"do
# `Template="#{template.name}" Theme="#{theme.name}" rake assets:precompile`
# end
# sleep 10
# system("#{Rails.root.to_s}/lib/shell_script.sh")
# RunRake.run_rake(template.name,theme.name)
# Dir.chdir "#{THEMEPATH}"do
# Rake::Task['assets:precompile'].invoke
# end
ENV["Template"] = template.name
ENV["Theme"] = theme.name
precompile_task = "bundle exec rake assets:precompile --trace 2>&1"
output = Dir.chdir(THEMEPATH) { %x[ #{precompile_task} ] }
flash[:notice] = "Asset created successfully"
else
flash[:notice] = "U have enter invalid data"
end
else
flash[:notice] = "U have enter invalid data"
end
end
Это мой код, проверяющий несколько условий и позволяющий выполнить задачу.
Я пробовал этот код, поставив контроллер и lib, но это не работает.
Я также попытался с помощью скрипта оболочки.
Может ли кто-нибудь помочь мне.
Это * действительно * не то, как предполагается использовать компиляцию активов. Вы должны делать это автоматически во время развертывания через скрипт сборки, а не вручную. Для этого не должно быть причин, по которым вам нужен графический интерфейс. – meagar
Спасибо за ответ. Поскольку у меня было много зависимостей, которые изменят код, в этом случае все время, когда они меняются, мне нужно запустить скрипт, поскольку я не могу предоставить ему доступ к ним , поэтому я предоставляю им графический интерфейс от что они сами могут запустить скрипт. – Jenorish
@ МалъСкрылевъ, пожалуйста, помогите мне, как я могу передать параметры? – Jenorish