2017-12-06 20 views
0

simple_form 양식 레이아웃을 렌더링하는 두 개의보기를로드하고 새로 작성하고 편집합니다.simple_form 레이아웃에서 보이는 입력 필드를 지정하십시오.

사용자 프로필을 처음 만들 때 (새 항목) 모든 입력 필드를 표시하고 편집 할 때 표시되지 않는 필드를 지정해야합니다. persisted에 대해 많은 정보를 보았지만 알아낼 수는 없습니다.

_form.html.slim 파일

= simple_form_for([:admin, User.new]) do |f| 
    = f.error_notification 
    .form-inputs 
    = f.input :name, required: true, label: 'Name' 
    = f.input :email, required: true 
    = f.input :password, required: true, placeholder: ("#{@minimum_password_length} characters minimum" if @minimum_password_length) 
    = f.input :password_confirmation, required: true 

    .form-actions 
    = f.button :submit, "Create User", class: 'btn btn-primary btn-block btn-lg' 

나는 레일즈 앤 슬림을 사용하고 있습니다.

+0

논리에서 'persisted?'를 사용하는 방법에 대해 혼란 스럽습니까? – Abdullah

+0

https://stackoverflow.com/a/26817319/4089357 – Abdullah

답변

0

폼의 필드를 조건부로 렌더링하려면 실제로 persisted?을 사용할 수 있습니다.

= simple_form_for([:admin, User.new]) do |f| 
    = f.error_notification 
    .form-inputs 
    = f.input :name, required: true, label: 'Name' 
    = f.input :email, required: true 

    -# Say you don't want user to edit his password after creation 
    - unless f.object.persisted? 
     = f.input :password, required: true, placeholder: ("#{@minimum_password_length} characters minimum" if @minimum_password_length) 
     = f.input :password_confirmation, required: true 

    .form-actions 
     = f.button :submit, "Create User", class: 'btn btn-primary btn-block btn-lg' 

여기 f.object 폼이 렌더링 될 대한 User 인스턴스 것이다.

+0

Perfect! 매우 감사합니다! –

+0

좋아요! 도움이된다면 대답을 수락 할 수 있습니다. :) –