0

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 키를 사용하여 저자를 찾습니다.

+0

다른 모델'friendly_id'을 사용 마십시오 acts_as_taggable_on 보석 제대로 레일 3.x를 작동 (https://github.com/mbleigh/acts-as-taggable-on) 를 사용할 수 있습니까? 'attr_accessible'의 기능을 "취소"할 수 있습니까? 확인하지 않았고 그것에 대해 아무 것도 모른다. 단지 아이디어 일 뿐이다. –

+0

답변 해 주셔서 감사합니다. 거의 모든 다른 모델들은 friendly_id를 사용합니다. – R3v4n

+0

Bummer; 좋아요 :) 클래스 선언에서 같은 순서로? –

답변

1

해결책을 찾았습니다!

문제는 내가 레일 3.2에서 작동하지 않습니다 acts_as_taggable_on_steroids 플러그인을 ... 사용하는 것이 었습니다 :-)

"저자"가 가진 유일한 모델이기 때문에

: name 속성은, 나는 문제가 왔다고 생각 저자로부터 ...하지만 문제는 태그 모델 (acts_as_taggable_on_steroid 플러그인에 있음)에있었습니다. 사실 : name 속성은 "액세스 가능하지"않습니다.

그래서, 나는

관련 문제