Я отправляю запрос javascript fetch () на конечную точку rails. Я использую Active Storage для сохранения изображения с моего локального компьютера. Браузер не разрешает полный путь к файлу. В интерфейсе рельсов с erb я могу использовать изображение и просматривать его в виде рельсов. Переход к JavaScript front-end и публикация в rails API не так легко сделать. Я знаю с отладчиком и binding.pry, что происходит в коде. На стороне js путь к файлу скрывается за поддельным путем. Таким образом, когда я ударяю по рельсам, я получаю именно это. Я использую активную память и в моей модели есть has_one_attached: file
FrontEnd
index.html <input type="file" id="myfile" name="myfile">
//this will hit the endpoint
fetch(BASE_URL + "/" + "pokemons/test", {
method: 'post',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify(obj)
}).then( response => response.json()
)
BackEnd
#=>model.rb
class Pokemon < ApplicationRecord
has_one_attached :file
#=> backend rails terminal in pry
{"nickname"=>"first_try", "species"=>"fictional", "trainer_id"=>1, "file"=>"C:\\fakepath\\WIN_20200205_00_06_57_Pro.jpg", "controller"=>"pokemons", "action"=>"test", "pokemon"=>{"species"=>"fictional", "nickname"=>"first_try", "trainer_id"=>1}}
terminal_errors:
ActiveSupport::MessageVerifier::InvalidSignature (ActiveSupport::MessageVerifier::InvalidSignature):
`