[RUBY-ON-RAILS] 종이 클립 :: 오류 :: 레일과 MissingRequiredValidatorError 4
RUBY-ON-RAILS종이 클립 :: 오류 :: 레일과 MissingRequiredValidatorError 4
내 레일 응용 프로그램을 블로그와 클립을 사용하여 업로드 할 때이 오류를 받고 있어요. 확실하지 무엇을 그것은 "MissingRequiredValidatorError"를 말할 때 언급한다 나는 post_params를 업데이트하고 제공함으로써 그 생각 : 모두 만들고 업데이트 사용 post_params로 이미지가 괜찮을 것
Paperclip::Errors::MissingRequiredValidatorError in PostsController#create
Paperclip::Errors::MissingRequiredValidatorError
Extracted source (around line #30):
def create
@post = Post.new(post_params)
이것은 내 posts_controller.rb입니다
def update
@post = Post.find(params[:id])
if @post.update(post_params)
redirect_to action: :show, id: @post.id
else
render 'edit'
end
end
def new
@post = Post.new
end
def create
@post = Post.new(post_params)
if @post.save
redirect_to action: :show, id: @post.id
else
render 'new'
end
end
#...
private
def post_params
params.require(:post).permit(:title, :text, :image)
end
이 내 게시물입니다 도우미
module PostsHelper
def post_params
params.require(:post).permit(:title, :body, :tag_list, :image)
end
end
당신이 나를 도와 내가 도움에 추가 자료를 보완 할 수 있는지 알려 주시기 바랍니다.
해결법
-
==============================
1.종이 클립 버전 4.0부터 모든 첨부 파일들은이 중 하나를하지 않을거야하는 콘텐츠 _ 검증하는 FILE_NAME 검증, 또는 명시 적 상태에 포함해야합니다.
종이 클립 버전 4.0부터 모든 첨부 파일들은이 중 하나를하지 않을거야하는 콘텐츠 _ 검증하는 FILE_NAME 검증, 또는 명시 적 상태에 포함해야합니다.
종이 클립은 종이 클립 :: 오류를 제기 :: MissingRequiredValidatorError 오류가이 중 하나를 수행하지 않는 경우.
귀하의 경우에는, 당신은 has_attached_file을 지정한 후, 당신의 포스트 모델에 다음 줄 중 하나를 추가 할 수 있습니다 이미지를
validates_attachment_content_type :image, :content_type => ["image/jpg", "image/jpeg", "image/png", "image/gif"]
- 또는 다른 방법
validates_attachment :image, content_type: { content_type: ["image/jpg", "image/jpeg", "image/png", "image/gif"] }
- 또는 - 또 다른 방법
콘텐츠 형식의 유효성을 확인하는 정규식을 사용하는 것입니다.
예를 들면 다음에 도시 된 바와 같이, 모든 화상 포맷을 검증하기 위해, 정규식 표현이 지정 될 수있다
LucasCaton의 대답 @
validates_attachment_file_name :image, :matches => [/png\Z/, /jpe?g\Z/, /gif\Z/]
어떤 미친 이유 (유효 할 수 있지만 지금 내가 하나 생각할 수 없다) 경우 다음을 추가, 당신은 당신이 당신의 서버에 기대하지 않은 데이터를 어떤 콘텐츠 _ 유효성 검사를 추가하고 스푸핑 콘텐츠 유형에 사람을 허용받지 않으 수행원:
do_not_validate_attachment_file_type :image
노트 :
/ 위의 옵션을 일치 콘텐츠 _ 내에서 사용자의 요구 사항에 따라 MIME 형식을 지정합니다. 당신이 시작하기 전 몇 가지 이미지 MIME 타입을 주었다.
참고:
당신은 여전히 확인해야 할 경우, 보안하는 검증 : 종이 클립을 참조하십시오. :)
또한 https://stackoverflow.com/a/23846121 스푸핑 검증은 여기에서 설명을 처리해야 할 수도 있습니다
-
==============================
2.그냥 모델에 넣어 :
그냥 모델에 넣어 :
validates_attachment :image, content_type: { content_type: /\Aimage\/.*\Z/ }
https://github.com/thoughtbot/paperclip
-
==============================
3.모델에 validates_attachment_content_type을 추가해야
모델에 validates_attachment_content_type을 추가해야
3 레일
class User < ActiveRecord::Base attr_accessible :avatar has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>" }, :default_url => "/images/:style/missing.png" validates_attachment_content_type :avatar, :content_type => /\Aimage\/.*\Z/ end
4 레일
class User < ActiveRecord::Base has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>" }, :default_url => "/images/:style/missing.png" validates_attachment_content_type :avatar, :content_type => /\Aimage\/.*\Z/ end
-
==============================
4.이 같은 확인 게시물 모델의 모습을 ...
이 같은 확인 게시물 모델의 모습을 ...
class Post < ActiveRecord::Base has_attached_file :photo validates_attachment_content_type :photo, :content_type => ["image/jpg", "image/jpeg", "image/png", "image/gif"] end
-
==============================
5.나도 작업에 이러한 솔루션 중 하나를 가져올 수 없습니다. 그들이 JPG했다하더라도, 나는 종이 클립 3.1 시도,하지만 내 응용 프로그램이 승인되지 않은 나에게 내 이미지 파일 확장자를 말하는 유지 없습니다.
나도 작업에 이러한 솔루션 중 하나를 가져올 수 없습니다. 그들이 JPG했다하더라도, 나는 종이 클립 3.1 시도,하지만 내 응용 프로그램이 승인되지 않은 나에게 내 이미지 파일 확장자를 말하는 유지 없습니다.
나는 마지막 버전 3.5.1 성공을 발견했다.
from https://stackoverflow.com/questions/21897725/papercliperrorsmissingrequiredvalidatorerror-with-rails-4 by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 임베디드 HTML과 LINK_TO 사용 (0) | 2020.02.27 |
---|---|
[RUBY-ON-RAILS] 레일의 범위 / named_scope은 무엇인가? (0) | 2020.02.27 |
[RUBY-ON-RAILS] 레일 / 레일 콘솔을 사용하여 객체 어떻게 목록 데이터베이스 테이블에? (0) | 2020.02.27 |
[RUBY-ON-RAILS] 어떻게 우분투 보석을 사용합니까? (0) | 2020.02.27 |
[RUBY-ON-RAILS] Postgres.app와 매버릭스에서 페이지 보석을 설치할 수 없습니다 (0) | 2020.02.27 |