pix*_*rth 2 ruby-on-rails rails-activestorage
我想做一个数据库查询来查找所有附加文件的记录。
class Departure
has_many_attached :pre_trip_documents
end
Run Code Online (Sandbox Code Playgroud)
然而这失败了:
Departure.joins(:pre_trip_documents).to_sql => #ActiveRecord::ConfigurationError (Can't join 'Departure' to association named 'pre_trip_documents'; perhaps you misspelled it?)
Run Code Online (Sandbox Code Playgroud)
你可以做:
Departure.joins(:pre_trip_documents_attachments)
Run Code Online (Sandbox Code Playgroud)
如果您查看其来源has_many_attached(可以在此处找到),这会更有意义。
总而言之,has_many_attached :pre_trip_documents结果是:
has_many :"pre_trip_documents_attachments", -> { where(name: "pre_trip_documents") }, as: :record, class_name: "ActiveStorage::Attachment" ...
Run Code Online (Sandbox Code Playgroud)
所以打电话Departure.joins(:pre_trip_documents_attachments)给你:
SELECT "departures".* FROM "departures" INNER JOIN
"active_storage_attachments" ON
"active_storage_attachments"."record_id" = "departures"."id" AND
"active_storage_attachments"."record_type" = 'Departure' AND
"active_storage_attachments"."name" = 'pre_trip_documents'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2055 次 |
| 最近记录: |