2012-11-28 2 views
0

사용자가 devise를 사용하여 가입 할 때 공급자 레코드를 만들려고합니다. 나는 다음과 같이 설정했습니다 : Devise: User belongs_to organizationDevise 가입, has_one 레코드 만들기

제공자가 생성되지 않았습니다. 내가 뭘 잘못 할 수 있니?

사용자 has_one 공급자.

attr_accessible :email, :password, :password_confirmation, :remember_me, :first_name, :last_name, :provider_attributes 
    belongs_to :provider 
    accepts_nested_attributes_for :provider 

내가 레일의 출력에서 ​​볼 수

<%= fields_for :provider do |provider_fields| %> 
     <%= provider_fields.label :name, :label => 'Company Name' %> 
     <%= provider_fields.text_field :name %> 
<% end %> 

그리고 내 모델 : 내가 양식을 제출할 때

"provider"=>{"name"=>"kjhkjh"}, 

사용자 사이에 속성
나는 나의 가입 양식을 수정 .

답변

1

양식 작성기에 전달할 블록 변수를 결정하기 위해 전체 사용자 등록 양식을 볼 수는 없지만 |f|이라고 가정합니다. 그렇다면 f의 접두사를 fields_for에 붙여야합니다.

f.fields_for :provider 

이 방법, 당신은 단순히 공급자, 당신의 PARAMS에 :provider_attributes을 전달하고 있습니다. 나는 당신이 이미 attr_accessible (다른 일반적인 잡았다)에 :provider_attributes을 추가했다는 것을 알기 때문에, 이제 당신은 그것이 당신의 통과인지를 확신 할 필요가있다!

출처 : http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-fields_for

+0

고맙습니다. 변경하면 공급자 이름 필드가 모두 사라집니다. 브라우저 도구를 보면, 그렇게 설정해도 아무 것도 출력하지 않습니다. 나는 그걸 뒤엎을 다른 잘못된 것을 얻었 을까? – Will

+0

이렇게 예상되는 원인을 찾아야합니다. <% % Will

+0

잘 보니 기쁘다. 도움을 주신 덕분에 – kries