gpt4 book ai didi

ruby-on-rails - Rails一种模型多种形式一页

转载 作者:行者123 更新时间:2023-12-03 08:32:58 24 4
gpt4 key购买 nike

我有一个包含用户模型的Rails应用程序。
用户可以编辑属性(地址,名称,密码,区域设置)。

为了实现RESTful,我为用户模型创建了一个资源

#routes.rb
resources :users, only: [:edit, :update]

用户可以在其中更新其属性(/users/:id/edit)的页面包含多种形式(一种用于一般信息,例如地址,一种用于语言环境设置,一种用于更改密码)。

这三种形式中的每一种都看起来像这样:
 = form_for(current_user, html: { class: 'fill-up' }) do |f|
.padded
= render 'shared/error_messages', object: current_user
= f.label :locale
.input
= f.select(:locale, [['Deutsch', 'de'], ['English, 'en']])
.form-actions
= f.button 'Submit', class: 'button'

问题是,如果我渲染编辑操作以显示current_user-object对象的错误消息,则这些错误消息将显示在所有三种形式上。

Rails的最佳实践是将模型属性拆分为不同的形式,并仅以一种特定的形式而不是全部显示错误消息。

最佳答案

一种解决方案是,假设您有2种形式
1)地址
2)密码

然后在地址编辑表单中仅显示current_user的地址属性错误,例如,

current_user.errors[:address] if current_user.errors.has_key?(:address )

并不是
current_user.errors

类似地,对于密码表单,您只显示密码错误
current_user.errors[:password] if current_user.errors.has_key?(:password )

这样,您可以避免所有形式的相同错误。

关于ruby-on-rails - Rails一种模型多种形式一页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18332624/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com