私はいくつかの質問(主に14880100 & 2308103)を受け取り、複数の画像をRailsモデルにアップロードする方法を見つけられませんでした。ここで複数の画像をアップロードする際の問題PaperClip、Nested Form Rails 5
私のコードです:
0 routes.rbをphoto.rb
class Photo < ApplicationRecord
attr_accessor :location_id, :name, :picture
belongs_to :location
has_attached_file :picture,
styles: { large: "", medium: "300x300#", thumb: "100x100#" },
storage: :s3,
:s3_protocol => :https,
url: ":s3_domain_url",
default_url: "placeholder.jpg",
path: "/:class/:attachment/:id_partition/:style/:filename",
s3_region: ENV["S3_REGION"],
s3_credentials: Proc.new { |a| a.instance.s3_credentials }
def s3_credentials
{
bucket: ENV['S3_BUCKET_NAME'],
access_key_id: ENV['S3_ACCESS_KEY_ID'],
secret_access_key: ENV['S3_SECRET_ACCESS_KEY'],
}
end
end
location.rb
class Location < ApplicationRecord
geocoded_by :address
after_validation :geocode
acts_as_votable
extend FriendlyId
friendly_id :title, use: :slugged
has_many :photos
accepts_nested_attributes_for :photos, :allow_destroy => true
belongs_to :user
has_many :comments, dependent: :destroy
end
私は「
/views/locations._form.html.erb
<div class="form-group">
<div class="col-md-5">
<%= nested_form_for @location, :html => { :multipart => true } do |f| %>
<%# all your building fields .... %>
<%= f.fields_for :photos do |photo| %>
<% if photo.object.new_record? %>
<%= photo.file_field(:picture) %>
<% else %>
<%= image_tag(photo.url(:thumb)) %>
<%= photo.hidden_field :_destroy %>
<%= photo.link_to_remove "X" %>
<% end %>
<% end %>
<p><%= f.link_to_add "Add photo", :photos %></p>
<% end %></div>
/views/locations.show.html.erb
<%= image_tag @location.photos.picture.url %>
エラー受信しているのは "未定義のメソッド"ピクチャ ""です。
ヒントをいただければ幸いです。
あなたがアクティブな関係オブジェクトの配列を受け取ります写真 'コレクション'であなただけI – uzaif