0

私はRORを初めて使用します。拡張子が付いたファイルを選択した後、参照ボタンのファイル名を取得したい。そして、ファイル名をデータベースのFile_name列に保存したいと思います。それをするのを手伝ってください。ファイル名だけでなく、File_name列に保存されているファイルのフルパスを取得することは可能ですか?そうするように私に提案してください。ファイルをアップロードしたくありません。ファイル名を保存したいだけです。

View(New)
--------------
<div class="pro-data-imports">
  <%= form_for @pro_data_import do %>

  <div class="field">
    Browse the file to upload:<br />
    <%= file_field_tag :File_name %>
  </div>

  <div class="actions">
    <%= submit_tag 'Import File' %>
  </div>
<% end %>
</div>


Controller
----------

class Pro::DataImportsController < ApplicationController
  before_filter :authenticate_user!
  layout "layouts/enr/energy_master"

  def index
    @pro_data_imports = Pro::DataImport.all
  end

  def new
    @pro_data_import = Pro::DataImport.new
    @pro_data_import.updated_by = current_user
  end

  def create
    @pro_data_import = Pro::DataImport.new(params[:pro_data_import])
    @pro_data_import.updated_by = current_user

  end 
end

Model
-------
I have File_name, File_validate, :updated_by Columns
4

1 に答える 1

1

それが何を意味するのかわかりません。あなたが知りたいと言ったコメントの中で、2つのパラメータを使用してストアドプロシージャを呼び出す方法。データベースがSQLの場合は、次のことを試して、仕様に従ってフィールド名を変更してください。

モデルで、メソッドを作成します

def update
  parameters = [self.File_Name, File_Location]
  parameters.map!{|p| ActiveRecord::Base.connection.quote p}
  sql = "your store procedure name"(#{parameters.join(',')})"
  ActiveRecord::Base.connection.execute(sql)
end

コントローラでは、

createメソッド内で、updateメソッドを呼び出します。

def create
  @update = Pro::DataImport.new(params[:pro_data_import])
  @pro_data_import.updated_by = current_user
  @update.update
  .........
  ...
end

お役に立てば幸いです。これは従うべき単なる例です。コピーして貼り付けないでください..:)

于 2012-10-20T19:55:01.010 に答える