# ActiveStorage (Ruby on Rails) > Tải lên tệp, tệp đính kèm, has_one_attached, has_many_attached, S3, variants, previews - 20 câu hỏi phỏng vấn - Mid-Level - [Câu hỏi phỏng vấn: Ruby on Rails](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van.md) ## 1. Lệnh nào nên được sử dụng để cài đặt ActiveStorage trong một ứng dụng Rails? **Câu trả lời** Lệnh rails active_storage:install tạo ra các migration cần thiết để tạo bảng active_storage_blobs và active_storage_attachments. Các bảng này lưu trữ metadata về các tệp được tải lên. Sau khi cài đặt, chạy rails db:migrate để áp dụng các migration vào cơ sở dữ liệu. ## 2. Macro nào nên được sử dụng để đính kèm một tệp duy nhất (avatar) vào model User? **Câu trả lời** Macro has_one_attached cho phép đính kèm một tệp duy nhất vào một model. Nó tự động tạo các phương thức avatar, avatar=, avatar.attach, avatar.attached? và avatar.purge. Đối với nhiều tệp, hãy dùng has_many_attached. ## 3. Macro nào nên được sử dụng để đính kèm nhiều tệp (documents) vào model Project? **Câu trả lời** Macro has_many_attached cho phép đính kèm nhiều tệp vào một model. Nó tạo các phương thức documents, documents.attach, documents.attached? và documents.purge. Các tệp được lưu trữ trong một collection và có thể được thêm hoặc xóa riêng lẻ. ## Còn 17 câu hỏi nữa - Phương thức nào nên được sử dụng để kiểm tra xem một tệp đã được đính kèm vào một bản ghi hay chưa? - Dịch vụ lưu trữ mặc định (local, S3, v.v.) nên được định nghĩa trong tệp cấu hình nào? Đăng ký miễn phí: https://sharpskill.dev/vi/login ## Các chủ đề phỏng vấn Ruby on Rails khác - [Kiến thức cơ bản về Ruby](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/ruby-basics.md): 25 câu hỏi, Junior - [Lập trình hướng đối tượng trong Ruby](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/ruby-oop.md): 20 câu hỏi, Junior - [Kiến thức cơ bản về Rails](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/rails-fundamentals.md): 18 câu hỏi, Junior - [Routing & Controllers](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/routing-controllers.md): 22 câu hỏi, Junior - [Kiến thức cơ bản về ActiveRecord](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/active-record-basics.md): 25 câu hỏi, Junior - [Views & Template ERB](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/views-erb-templates.md): 20 câu hỏi, Junior - [Liên kết ActiveRecord](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/active-record-associations.md): 24 câu hỏi, Mid-Level - [Truy vấn ActiveRecord nâng cao](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/active-record-queries.md): 28 câu hỏi, Mid-Level - [Form Rails](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/rails-forms.md): 20 câu hỏi, Mid-Level - [Xác thực & Phân quyền](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/authentication-authorization.md): 22 câu hỏi, Mid-Level - [Asset Pipeline hiện đại & frontend](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/rails-asset-pipeline.md): 18 câu hỏi, Mid-Level - [Chế độ API của Rails](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/rails-api-mode.md): 20 câu hỏi, Mid-Level - [Kiểm thử với RSpec](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/rails-testing-rspec.md): 24 câu hỏi, Mid-Level - [ActiveJob & Background Jobs](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/active-job-background-jobs.md): 20 câu hỏi, Mid-Level - [ActionCable & WebSockets](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/action-cable-websockets.md): 18 câu hỏi, Mid-Level - [ActionMailer](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/action-mailer.md): 18 câu hỏi, Mid-Level - [Chiến lược Caching](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/caching-strategies.md): 20 câu hỏi, Mid-Level - [Migration nâng cao](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/database-migrations-advanced.md): 20 câu hỏi, Mid-Level - [Rails Engines & ứng dụng mô-đun](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/rails-engines-modular-apps.md): 18 câu hỏi, Senior - [Tối ưu hóa hiệu năng](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/performance-optimization.md): 26 câu hỏi, Senior - [Design Patterns trong Rails](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/rails-design-patterns.md): 22 câu hỏi, Senior - [Lập trình meta trong Ruby](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/ruby-metaprogramming.md): 20 câu hỏi, Senior - [Bảo mật Rails](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/rails-security.md): 22 câu hỏi, Senior - [GraphQL với Rails](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/graphql-rails.md): 20 câu hỏi, Senior - [Triển khai & Sản xuất](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/rails-deployment-production.md): 20 câu hỏi, Senior - [Monitoring & Logging](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/monitoring-logging.md): 20 câu hỏi, Senior - [Chiến lược nâng cấp Rails](https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/rails-upgrade-strategies.md): 18 câu hỏi, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/vi/technologies/ruby-on-rails/cau-hoi-phong-van/active-storage