私の使用例は単純です。 dashboard/incomes
I display a form to update a record of type というページでIncomeSetting
。
#income-setting-form
h4 Income Settings
p Please set your Income Settings using the form below.
= render 'income_settings/form'
これにより、このタイプのオブジェクトを編集するためのフォームが生成されます。
= simple_form_for @income_setting do |f|
= f.hidden_field :user_id
= f.error_notification
.form-group
= f.label :amount
= f.input_field :amount, required: true, class: 'form-control'
= f.error :amount, id: 'amount_error'
= f.association :income_frequency_type, label: 'Frequency:', collection: IncomeFrequencyType.order('id ASC'), include_blank: false, wrapper_html: { class: 'form-group' }, input_html: { class: 'form-control' }
.form-group
= f.label :start_date
= f.input_field :start_date, required: true, as: :string, class: 'form-control datepicker'
= f.error :start_date, id: 'start_date_error'
= f.association :savings_rate_type, label: 'Savings Rate:', collection: SavingsRateType.order('name ASC'), include_blank: false, wrapper_html: { class: 'form-group' }, input_html: { class: 'form-control' }
.form-group
= f.label :description
= f.input_field :description, required: true, class: 'form-control'
= f.error :description, id: 'amount_error'
button.btn.btn-primary.btn-block type='submit' Save
RESTful で保守しやすいものにするために、IncomeSetting
オブジェクトに対するすべてのアクションをincome_settings_controller.rb
ファイルに保存することにしました。
def update
if @income_setting.update(income_setting_params)
redirect_to dashboard_income_path, notice: 'Your Income Setting was saved successfully updated.'
else
redirect_to controller: 'dashboard', action: 'income'
end
end
検証が失敗した場所がわかりますか?ダッシュボードにリダイレクトしますか? @income_setting
そこにブレークポイントを配置すると、モデルに検証エラーがあることがわかりますが、コントローラーがリダイレクトするのと同じように、モデル エラーは失われますか?
が呼び出されるまでに実際に表示されるように、これらのエラーを永続化する方法に関する提案はrender 'income_settings/form
ありますか?