выполнение команды как суперпользователь из сценария Python

Почему бы просто не отсортировать по названию? Предполагая, что у вас есть столбец в таблице статей, который называется title:

Для алфавитного порядка

def index
  @articles = Article.order(:title)
end

Для обратного алфавитного порядка

def index
  @articles = Article.order(title: :desc)
end

Если вы действительно хотите просто отсортировать по подстроке заголовка. Вам нужно будет добавить новый столбец в таблицу статей (в этом примере он называется slug):

rails g migration AddSlugToArticles slug:text

rails db:migrate

Тогда у вас будет обновить поле слагов для каждой записи

Article.all.each do |article|
  new_slug = #your code to generate substring here
  article.update(slug: my_string
end

, затем упорядочить по слагу:

def index
  @articles = Article.order(:slug)
end
41
задан 9 revs, 2 users 98% 6 June 2012 в 18:26
поделиться

3 ответа

Попытайтесь дать полный путь apache2ctl.

17
ответ дан dwc 27 November 2019 в 00:43
поделиться

Попытка:

subprocess.call(['sudo', 'apach2ctl', 'restart'])

подпроцесс должен получить доступ к реальному stdin/out/err для него, чтобы смочь предложить Вам и читать в Вашем пароле. При установке их как каналов необходимо подать пароль в тот канал сами.

, Если Вы не определяете их, затем это захватывает sys.stdout, и т.д.

25
ответ дан Mike Boers 27 November 2019 в 00:43
поделиться

Необходимо использовать Popen как это:

cmd = ['sudo', 'apache2ctl', 'restart']
proc = subprocess.Popen(cmd, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

Это ожидает список.

6
ответ дан Harley Holcombe 27 November 2019 в 00:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: