Ruby on rails RubyonRails:如何定义扩展并将其放入数据库?
我想修改以下代码,以便能够只将文件扩展名写入数据库。现在我阅读了文件内容类型,但我只需要知道扩展名(扩展名可以更改对我来说并不重要)并将其放入数据库。 upload_file_name已经有一个扩展名了,但我需要提取它并将其作为新行放入同一个数据库表中Ruby on rails RubyonRails:如何定义扩展并将其放入数据库?,ruby-on-rails,Ruby On Rails,我想修改以下代码,以便能够只将文件扩展名写入数据库。现在我阅读了文件内容类型,但我只需要知道扩展名(扩展名可以更改对我来说并不重要)并将其放入数据库。 upload_file_name已经有一个扩展名了,但我需要提取它并将其作为新行放入同一个数据库表中 ActiveRecord::Schema.define(:version => 20120731045929) do create_table "uploads", :force => true do |t| t.str
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
结束
而且可以在不带扩展名的情况下保存文件名?,该扩展名看起来像来自
schema.rb
不要直接碰那个
如果您在/db/migrations
下查看,您将看到文件名混乱的ruby文件。这些是ruby文件,可用于配置数据库表
- 首先在数据库中添加一列
rails生成迁移添加文件内容类型到上传文件内容类型:string
- 在Upload.rb模型文件中,将
添加到attr\u accessiblefile\u content\u type
attr\u可访问:文件内容类型
- 要查找扩展名,可以使用
File.extname
创建方法中
def create
...
@upload.file_content_type = File.extname(params[:upload_file_name])
...
end
谢谢。如果我需要以下内容怎么办:在上传文件之前,用户可以选择文件并查看要上传的文件的名称。roder中还有一个选择菜单,用于选择文件类别,如“家庭”、“工作”、“外出”、“旅行”等。如何将从用户类别中选择的文件放入数据库?如何将类别选项与数据库绑定?ps。对于文件系列,用户只能选择一个类别。选择框是用html制作的,有一个用于选择标记的rails助手。看看