JSON API가있는 Rails 3.2.2 응용 프로그램에서 작업 중이며 일부 데이터를 삽입 할 때 CLI 클라이언트를 사용합니다. 제작자 모델을 제외하고는 정상적으로 작동합니다. 내가 새 게시물을 만들려고 할 때 (포스트 belongs_to : 저자 및 저자 has_many : 게시물) 나는 다음과 같은 오류 얻을 : 나는이 주제에 대한 연구를 많이했다attr_accessible을 사용하는 경우에도 보호 속성을 지정할 수 없습니다.
<h1>
ActiveModel::MassAssignmentSecurity::Error in PostsController#create
</h1>
<pre>Can't mass-assign protected attributes: name</pre>
을하지만 난 어떤 작업 솔루션 을 찾을 수 없습니다 - (
나는 MassAssignent 오류를 방지하기 위해 attr_accessible 사용하고는 "저자"name 속성에 대한 모든 다른 모델이 아닌 작동 여기
는 저자 모델이다.class Author < ActiveRecord::Base
attr_accessible :name, :email
extend FriendlyId
friendly_id :name, use: :slugged
# some validations
has_many :posts
#authlogic
acts_as_authentic
# some stuffs
end
사실, whitelist_attributes를 사용하지 않고 내 문제를 해결했습니다. 하지만이 방법을 사용하는 것이 편리하지 않다고 생각합니다 (아마도 은 좋지 않습니다).
내 질문은 : attr_accessible이 여기에서 작동하지 않는 이유는 무엇입니까? 그리고 어떻게하면 화이트리스트를 비활성화하지 않고도 문제를 해결할 수 있습니까?
는Revan
편집을 주셔서 감사합니다 :
새로운 게시물을 작성하는 방법
def create
@post = Post.new(params[:post])
@post.author = current_author
# respond to etc.
end
current_author 주어진 API 키를 사용하여 저자를 찾습니다.
다른 모델'friendly_id'을 사용 마십시오 acts_as_taggable_on 보석 제대로 레일 3.x를 작동 (https://github.com/mbleigh/acts-as-taggable-on) 를 사용할 수 있습니까? 'attr_accessible'의 기능을 "취소"할 수 있습니까? 확인하지 않았고 그것에 대해 아무 것도 모른다. 단지 아이디어 일 뿐이다. –
답변 해 주셔서 감사합니다. 거의 모든 다른 모델들은 friendly_id를 사용합니다. – R3v4n
Bummer; 좋아요 :) 클래스 선언에서 같은 순서로? –