У меня есть JS, который захватывает имя файла с помощью ввода:
var fullPath = document.getElementById('file').value;
if (fullPath) {
var startIndex = (fullPath.indexOf('\\') >= 0 ? fullPath.lastIndexOf('\\') : fullPath.lastIndexOf('/'));
var filename = fullPath.substring(startIndex);
if (filename.indexOf('\\') === 0 || filename.indexOf('/') === 0) {
filename = filename.substring(1);
}
}
if(passAll === true){
alert(filename);
}
}
Затем я создал эшафот, чтобы показать историю моих файлов:
Мой контроллер истории:
class HistoricosController < ApplicationController
before_action :set_historico, only: [:show, :edit, :update, :destroy]
# GET /historicos
# GET /historicos.json
def index
@historicos = Historico.all
end
end
Я только позволяю индексу, потому что мне не нужно CRUD для любого имени файла.
Моя модель пуста:
class Historico < ApplicationRecord
end
Мой индекс истории:
<p id="notice"><%= notice %></p>
<h1>Historicos</h1>
<table>
<thead>
<tr>
<th>Arquivos validados:</th>
<th colspan="3"></th>
</tr>
</thead>
<tbody>
<% @historicos.each do |historico| %>
<tr>
<td><%= historico.filename %></td>
</tr>
<% end %>
</tbody>
</table>
<br>
Мой ввод:
<%= file_field_tag 'file' %>
Мой БД:
class CreateHistoricos < ActiveRecord::Migration[5.2]
def change
create_table :historicos do |t|
t.string :filename
t.timestamps
end
end
end
Дело в том, что я не хочу создавать какие-либо имена файлов, у меня уже есть имя файла, это то, что делает мой JS код, и я хочу знать, как я могу получить это имя файла (которое у меня уже есть) и просто сохранить его в моем индексе истории?
PS: Должен ли я изменить имя файла в моей БД, чтобы он не запутался?