2017-12-06 22 views
0

simple_formフォームレイアウトをレンダリングする2つのビューを読み込んでいます。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' 

私はRailsとSlimを使用しています。

+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

完璧!どうもありがとう! –

+0

素晴らしい!それが助けられたら、答えを受け入れることができます。 :) –

関連する問題