2011-12-30 5 views
0

저는 user라는 모델이 있습니다. 암호 필드를 편집 페이지가 아닌 작성 페이지에 표시하고 싶습니다.레일스 3 Active_admin - 새 페이지에 필드를 표시하고 편집하지 않습니다.

ActiveAdmin.register User do 
    form do |f| 
     f.inputs "User Details" do 
      f.input :first_name 
      f.input :last_name 
      f.input :email 
      if f.object.new_record? 
       f.input :password 
      end 

     end 
    f.buttons 
    end 
end 

이것은 내가 시도했지만 .new_record 사용하여 무엇인가? 함수 내 모든 필드가 편집 페이지에서 사라집니다.

아이디어가 있으십니까?

if f.object.id.nil? 
    f.input :password 
end 

답변

1

솔루션은 부분을 사용하는 것이었다 :

0

나는 것을 사용했습니다.

+0

작동하지 않았다. 내 편집이 필드를 표시하지 않습니다 – Tony

1

나를 좋아하는 사람은 나중에 나옵니다. Meskallito가 제공 한 답변이 작동하지만, 로직을 삽입 할 때 ActiveAdmin/Formtastic oddities를 표시하기 위해 필드 세트를 사용해야 할 수도 있습니다. 양식이 구성되어 있습니다.

form do |f| 
    f.inputs 'Account' do 
    f.inputs "Credentials" do 
     f.input :email,     :label => "Email Address" 
    end 
    if f.object.id.nil? 
     f.inputs "Password" do 
     f.input :password,    :label => "Password" 
     f.input :password_confirmation, :label => "Password Confirmation" 
     end 
    end 
    ... 
    end 
end 

지금 암호와 password_confirmation 필드와 필드 셋 나는 새 사용자를 만드는거야, 나는 사용자를 편집하고있어하지 않을 경우에만 표시 : 나는 그의 대답을 구현하는 경우 예를 들어, 내가 이런 짓을. new_record? Tony가 원래 사용했던 기능도 잘 작동했을 것입니다. 그가 시도했을 때이 필드로 인해 필드가 사라 졌다고 말했기 때문입니다.

아직, 나는 Meskallito의 원래 답변에 댓글을 달았지만 충분한 담당자가 없었습니다. :-)

+0

다음을 확인하십시오 : https : //github.com/gregbell/active_admin/issues/887 이것은 active_admin의 버그입니다. – Tony

+0

나는 f.object를 사용했고 효과가 있었다. 감사 –

0

이 시도 :

if f.object.new_record? 
    f.input :password 
    f.input :password_confirmation 
    end 
관련 문제