Я хочу добавить возможность пользователю иметь несколько картинок, связанных с его / ее учетной записью.
У меня есть следующие классы:
class User < ActiveRecord::Base
has_many :assets
accepts_nested_attributes_for :assets
end
class Asset < ActiveRecord::Base
belongs_to :assetable, :polymorphic => true
belongs_to :user
end
Я хочу, чтобы у меня был экран с функцией загрузки изображений:
def add_profile_picture
@user=User.find(params[:id])
1.times {@user.assets.build}
end
форма:
<%= form_for @user do |u| %>
<%= u.fields_for :assets do |asset| %>
<%= asset.file_field :asset %>
<%= asset.text_field :description %><br />
<% end %>
<%=u.submit %>
<% end %>
Когда я отправляю сообщение, оно выглядит так, как будто значение id идёт нормально в development.log:
"id"=>"1"
но я получаю ошибку:
неопределенный метод update_attributes для nil: NilClass
Поскольку у меня просто есть поля актива, нужно ли мне что-то особенное делать? Кроме того, из-за того, что own_to: пользователь существует, это может вызывать проблемы?
В основном:
asset:
user_id:
assetable_type:
assetable_id:
Любая помощь будет принята с благодарностью. Не делайте много вещей из Rails.
1024 * ТНХ *
edit # 1
class UsersController < ApplicationController
def add_profile_picture
@user=User.find(params[:id])
1.times {@user.assets.build}
end
ТНХ