我是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
答案 0 :(得分:1)
我不知道你的意思。在您提到的评论中,您想知道如何使用两个参数调用存储过程。如果您的数据库是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
我希望它会有所帮助。这只是一个例子。不要复制和粘贴.. :))