記事の
最初の部分では、RESTアプリケーションを作成し、Redactor.js 1/3を構成しました。 本日、アップロードされた画像を管理するためのインターフェースを作成することで発明を完成させ、ファイルのダウンロードを提供します。 ファイルをダウンロードするとき、CarrierWaveは使用しませんが、通常のRubyパスを使用します。
ファイルをアップロードすることから始めましょう。 私はあなたが今そのようなinit.rbファイルを持っていると仮定します:
したがって、public / uploadsディレクトリにfilesフォルダーを作成し、新しいUploadedFilesモデルを作成して、ファイルをアップロードするためのpostメソッドを追加します
set :files, File.join(settings.public_directory, 'uploads/files')
ファイルをアップロードする方法をエディターに正確に伝え、layout.erbを開いて行を見つけます
$('.redactor_1').redactor({toolbar: 'default', lang: 'ru', imageUpload: '/upload/image', imageGetJson: '/uploads/images/imageslist.json'});
fileUpload設定を追加します
。「/ upload / file」は次のようになります
$('.redactor_1').redactor({toolbar: 'default', lang: 'ru', imageUpload: '/upload/image', fileUpload: '/upload/file', imageGetJson: '/uploads/images/imageslist.json'});
必要なすべての設定を行いました。モデルの作成、ダウンロードしたファイルへのパスの設定、ファイルのダウンロード自体の実装、許可されたファイルのチェックを行いました。 ここで注意したいのは、ファイル拡張子が許可された拡張子と一致しない場合はエラーメッセージを実装することですが、2つのBUTがあります:最初に、Redactor.jsはフレーム内のすべてを行い、エラーメッセージが作成された場合、それが書き込まれます私の考えでは、gem sinatra-flashを介してエラーメッセージを実装しようとした場合、テキストエリアでは、これは良いアイデアではありません。エラーはページがリロードされた後にのみ表示されるためです。 さて、おそらくより経験豊富な人が掘る方法を教えてくれます。
それでは、ダウンロードした画像の管理を始めましょう。ダウンロードした画像をすべてリストし、削除するだけです。
init.rbに追加
viewsディレクトリにimages.erbファイルを作成します
<strong><a href="/posts"> post'</a></strong> <h2> </h2> <% @ uploadedimage.each do |uploadedimages| %> <a href="<%= uploadedimages.image %>"><img src="<%= uploadedimages.thumb %>"></a><br> # <a href="/images/<%= uploadedimages.id %>/delete"></a><br><br> <% end %>
さて、アプリケーションは完成しました。 画像管理と同様に、ファイル管理も実行できます。 かなりうまくいったと思う。 これで終わりではありません。RubyとSinatraの研究を続けており、さらに記事があります。
Githubソースコード
PS:私が出会うどこでも
<hh user=posts>
または
<hh user=images>
@variable_nameに置き換えるだけです