Пользовательская модель имеет модель Project, к которой прикреплено фото с использованием скрепки
Я не припоминаю, чтобы когда-либо возникали подобные проблемы. Проблема в том, что вложение сохраняется в файловой системе, но
не база данных.
например RAILS_ROOT / public / system / photos / id / style / file создается, но User.find (1) .projects [0] .photo? возвращает false
Модель пользователя:
has_many :projects, :dependent => :destroy
Модель проекта:
attr_accessible :title, :content, :src, :medium, :photo
attr_accessor :photo_file_name
attr_accessor :photo_content_type
attr_accessor :photo_file_size
attr_accessor :photo_updated_at
belongs_to :user
has_attached_file :photo, :styles => {:medium => '800x600>', :thumb => '100x100>'}
projects_controller:
def create
@user = current_user
@project = Project.create! do |p|
p.user_id = @user.id
p.medium = params[:project][:medium]
p.title = params[:project][:title]
p.content = params[:project][:content]
p.src = params[:project][:src]
p.photo = params[:project][:photo]
end
if @project.save
redirect_to projects_path
else
render :action => 'new'
end
end
выставочное действие проекта:
- form_for(@project, :html => { :multipart => true }) do |f|
...
Обычно в моем файле маршрутов были бы "ресурсы: проекты", но по какой-то причине это портило мои пользовательские маршруты (/ проекты отображались на действие show вместо индекса, а представления формы обрабатывались индексом действие) поэтому я удалил строку ресурсов. Ассоциация проект-пользователь работает правильно, но фотография не присваивается проекту. Я не уверен почему.