使用活动存储将image
附加到article
在storage.yml
中:
local:
service: Disk
root: <%= Rails.root.join("storage") %>
article.rb
:
class Article < ApplicationRecord
belongs_to :auteur
has_one_attached :image
以添加文章的形式:
<%= f.file_field :image %>
在article_controller.rb中:
def hop
@auteur = Auteur.find(params[:auteur_id])
@article = @auteur.articles.new(article_params)
@article.publie = params[:publie].to_s
@article.slug = Article.to_slug(@article.titre)
@article.save
redirect_to adm_auteur_tous_articles_url
end
这样做,图像将上传到storage/es/ul/esulvqpj2apfcqx41hwdtnchd5y4
(这是正确的,因为我可以在MacOs Finder窗口中看到图像)
但在视图中,我这样做:
<%= image_tag(@article.image) if @article.image.attached? %>
图片未显示,因为图片的网址是:
http://localhost:3000/rails/active_storage/blobs/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBCZz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--661c66c418b20fc46350823faaac7124c25138dd/chat.jpg
这将导致301 moved permanently
状态。
因此图像未显示。
答案 0 :(得分:0)
从路由中删除此行就可以了(我把它作为route.rb的最后一行:
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
text.setText("Please Wait");
Handler delayHandler = new Handler();
delayHandler.postDelayed(new Runnable() {
@Override
public void run() {
boolean res=scanning();
if(res) {
text.setText("Found");
}
else{
text.setText("Not Found");
}
}
},100);
}
});