Loại mới với điều Rails, trong một chút tại chỗ.Lưu mô hình lồng nhau trong Rails 4
Một trong các mô hình phụ thuộc vào nhau trong liên kết has_many/owned_to.
Về cơ bản, khi tạo "Đăng" trên ứng dụng của tôi, người dùng cũng có thể đính kèm "Hình ảnh". Lý tưởng nhất là hai mô hình riêng biệt. Khi người dùng chọn một bức ảnh, một số JavaScript tải nó lên Cloudinary và dữ liệu trả về (ID, chiều rộng, chiều cao, vv) được JSON xâu chuỗi và đặt trên một trường ẩn.
# The HTML
= f.hidden_field :images, :multiple => true, :class => "image-data"
# Set our image data on the hidden field to be parsed by the server
$(".image-data").val JSON.stringify(images)
Và tất nhiên, mối quan hệ tồn tại trong mô hình bài viết của tôi
has_many :images, :dependent => :destroy
accepts_nested_attributes_for :images
và mô hình hình ảnh của tôi
belongs_to :post
Nơi tôi đang bị mất là phải làm gì với dữ liệu hình ảnh tuần tự trên phương thức tạo của bộ điều khiển Post? Đơn giản chỉ cần phân tích cú pháp JSON và tiết kiệm nó không tạo ra các mô hình hình ảnh với các dữ liệu sau khi tiết kiệm (và không cảm thấy phải):
params[:post][:images] = JSON.parse(params[:post][:images])
Tất cả điều này về cơ bản lên đến đỉnh điểm với một cái gì đó giống như các thông số sau:
{"post": {"title": "", "content": "", ..., "images": [{ "public_id": "", "bytes": 12345, "format": "jpg"}, { ..another image ... }]}}
Toàn bộ quá trình này có vẻ hơi phức tạp - Tôi phải làm gì bây giờ, và có cách nào tốt hơn để làm những gì tôi đang cố gắng làm ngay từ đầu không? (Ngoài ra là các thông số mạnh mẽ cần thiết cho các thuộc tính lồng nhau như thế này ...?)
EDIT:
Tại thời điểm này tôi đã nhận lỗi này:
Image(#91891690) expected, got ActionController::Parameters(#83350730)
đến từ dòng này ...
@post = current_user.reviews.new(post_params)
Dường như nó không tạo hình ảnh từ thuộc tính lồng nhau nhưng được mong đợi. (Điều tương tự cũng xảy ra khi: tự động lưu là có hay không).
Tôi có cùng vấn đề chính xác – nduplessis
Mb có thể giúp http://stackoverflow.com/questions/10878930/got-activerecordassociationtypemismatch-on-model-save – user2915517