0

ファイル拡張子のみをデータベースに書き込めるように、次のコードを変更したいと考えています。ここで file_content_type を読み取りましたが、必要なのは拡張子 (拡張子を変更できるかどうかは問題ではありません) を知り、それをデータベースに入れることだけです。upload_file_name には既に拡張子がありますが、それを抽出して新しい行と同じデータベース テーブルに配置する必要があります。

ActiveRecord::Schema.define(:version => 20120731045929) do

  create_table "uploads", :force => true do |t|
    t.string   "upload_file_name"
    t.string   "upload_content_type"
    t.string   "user"
    t.integer  "upload_file_size"
    t.datetime "upload_updated_at"
    t.datetime "created_at",          :null => false
    t.datetime "updated_at",          :null => false
  end

終わり

そして、どうにかして file_name を拡張子なしで保存することは可能ですか?

4

1 に答える 1

0

からのようschema.rbです。

直接触れないでください。

下を見ると、見た目/db/migrationsが乱雑なファイル名の ruby​​ ファイルがあります。これらは、データベース テーブルを構成できる ruby​​ ファイルです。

  • 最初にデータベースに列を追加します。

ターミナルで、実行しますrails generate migration add_file_content_type_to_uploads file_content_type:string

  • Upload.rb モデル ファイルで、file_content_typeattr_accessible に追加します。

attr_accessible :file_content_type

  • 拡張子を見つけるには、 を使用できますFile.extname

だから多分createアップロードコントローラのあなたの方法で

def create
  ...
  @upload.file_content_type = File.extname(params[:upload_file_name])
  ...
end
于 2012-11-08T18:52:54.997 に答える