2012-03-19 3 views
3

동영상에 둘 이상의 파일 애셋을 업로드하려고합니다. 여기 내 코드입니다 왜 오류 Asset model missing required attr_accessor for 'asset_file_name'를 받고 계속하고 나는 확실하지 않다 :애셋 모델이 누락되었습니다. Attr_accessor에 Paperclip이 필요합니다.

asset.rb 모델

class Asset < ActiveRecord::Base 
    belongs_to :movie 

    has_attached_file :asset 
end 

나는 또한 rails g paperclip movie asset를 실행 한

class Movie < ActiveRecord::Base 
    belongs_to :user 

    has_many :assets 
    accepts_nested_attributes_for :assets 

    validates :title, presence: true 

    default_scope order: 'movies.created_at DESC' 
end 

movie.rb 모델있는 다음 마이그레이션 파일을 생성했습니다.

class AddAttachmentAssetToMovie < ActiveRecord::Migration 
    def self.up 
    add_column :movies, :asset_file_name, :string 
    add_column :movies, :asset_content_type, :string 
    add_column :movies, :asset_file_size, :integer 
    add_column :movies, :asset_updated_at, :datetime 
    end 

    def self.down 
    remove_column :movies, :asset_file_name 
    remove_column :movies, :asset_content_type 
    remove_column :movies, :asset_file_size 
    remove_column :movies, :asset_updated_at 
    end 
end 

그리고 여기 내 "creat 내가 자산 모델을 생성 할 때 온 전자 자산 "마이그레이션 : 내가 오류 Asset model missing required attr_accessor for 'asset_file_name'를 수신 할 이유

class CreateAssets < ActiveRecord::Migration 
    def change 
    create_table :assets do |t| 
    t.string :asset_file_name 
    t.integer :asset_file_size 
    t.string :asset_content_type 
    t.datetime :asset_updated_at 
    t.text :asset_description 
    t.integer :movie_id 

    t.timestamps 
    end 
end 

은 제안 할 수 있나요?

답변

8

최신 버전의 레일은 대량 할당에 대해 (올바르게) 편집증 적입니다. 애셋 모델에 attr_accessible :asset_file_name을 추가하여 데이터베이스가 요청시 외부 매개 변수 입력을 받아 들일지 여부를 선언하십시오.

는에 config.active_record.whitelist_attributes = true 주석, 심지어 더 안전합니다 당신의 application.rb (다음 모든 테스트) 당신이 생각하도록 강요되도록 "네, 괜찮아요 나쁜 아무것도 일어나지 않습니다"당신이 사용자가 업데이트 할 수있는 속성에 대해.

+0

안녕하세요 tharrison, 나는 이것이 이것의 경우 였으면 좋겠다. 그러나 나는 이미 그것을 시도했고 똑같은 일이 일어난다. 나는 이것이 어디에서 오는 것인지 정말로 이해하지 못한다. – JeffC

+0

감사합니다 해리슨, 당신 말이 맞아요, 내가 일하고 있었고 오래된 레일임을 깨닫지 못했던 얼마 전부터 나쁜 지점을 가졌습니다. 이것은 필요한 모든 것이 었습니다. 감사합니다! – JeffC

관련 문제