0

アプリからディレクトリの名前を変更する可能性はありますか?

FTP経由でファイルをアップロードし(ファイルが多く、重量があるため)、{model.title}-{model.place}をテーマにしたディレクトリに名前を付けています。サブジェクトのタイトルやアプリ内の場所を変更すると、ディレクトリ名が間違っているため、FTP に接続して名前を変更する必要があります。アプリで「編集」を押したときに、このディレクトリの名前を自動的に変更したい。

キャリアウェーブを使用してレール 3.1.3 でアプリを取得しました。

4

2 に答える 2

2

FileUtilsを使用して、Ruby のディレクトリの名前を変更できます。

require 'fileutils'
FileUtils.mv old_directory_name, new_directory_name

モデル コールバックを使用してこれを実装できます。

class MyModel < ActiveRecord::Base
  # Callback triggered by a changed place or title
  before_save :change_directory_names

  private

  # Method that changes directory names
  def change_directory_name
    if self.title_changed?
      title = self.title.changes.flatten.drop(1)
      # Code here to change the directory name
      # Old title: title.first
      # New title: title.last
    elsif self.place_changed?
      place = self.place.changes.flatten.drop(1)
      # Code here to change the directory name
      # Old place: place.first
      # New place: place.last
    end
  end
于 2012-06-07T08:10:12.417 に答える
1

ディレクトリに変更されない名前を付ける方が理にかなっていると思います。Model.id だけを使用しないのはなぜですか?

于 2012-06-07T10:29:51.747 に答える