私は2つのモデルを持っています(本と画像)
class Book < ActiveRecord::Base
has_many :images
accepts_nested_attributes_for :images
end
class Image < ActiveRecord::Base
belongs_to :book
has_attached_file :data, :path => ":rails_root/public/system/datas/:book_id/:style/:basename.:extension",
:url => "/system/datas/:book_id/:style/:basename.:extension",
:styles => {
:thumb => ["150x172#",:jpg],
:large => ["100%", :jpg]
}
validates_attachment_presence :data
validates_attachment_content_type :data,
:content_type => ['image/jpeg', 'image/pjpeg',
'image/jpg', 'image/png', 'image/tiff', 'image/gif'], :message => "has to be in a proper format"
end
ユーザーが新しい本を作成して画像をアップロードすると、特定のページにリダイレクトされるようにアプリケーションを変更したいと思います。それ以外の場合は、[表示]ページにリダイレクトされます
BookControllerの「create」アクションを次のように変更しました。
def create
@book = Book.new(params[:book])
if @book.save
flash[:notice] = 'Book was successfully created'
if params[:book][:image][:data].blank? # === this line is giving me errors
redirect_to @specific_page
else
redirect_to show_book_path(@book.id)
end
else
render :action => 'new'
end
end
1つまたは複数の画像がアップロードされている場合、ユーザーは別のページに移動する必要があることをテストしたい
次のif条件が誤っています。
if params[:book][:image][:data].blank? # === this line is giving me errors
新しい本に画像が添付されているかどうかを確認する方法を誰かに教えてもらえれば幸いです。
書籍に関連するすべての画像ではなく、新しくアップロードされた画像のみを確認したいことに注意してください。
ありがとう