如何在一个页面上将error_messages与两个表单分开?

时间:2010-06-09 20:07:56

标签: ruby-on-rails ruby forms

我在一个视图中有两个表单来更新用户配置文件。一个表格是更新我的名字等,一个是更改我的密码。

个人资料表格:

- form_for @user, :url => account_path do |f|
  = f.error_messages
  ...form fields here...

密码表格:

- form_for @user, :url => account_path do |pf|
  = pf.error_messages
  ...password fields here...

正如您所看到的,它们都指向用户控制器中的相同更新操作。如果我输入的密码无效,则error_messages会向我显示相同的错误消息。

如何为每个表单输出单独的错误消息?

1 个答案:

答案 0 :(得分:2)

您需要使用error_message_on输出一个特定属性的错误消息。请记住,它的输出本身并不是很有意义,因为它缺少error_messages / error_messages_for默认包含的属性名称和标题消息。您可以使用:prepend_text和:append_text来自定义消息(有关详细信息,请参阅API文档)。

请注意,对于密码部分,您只需拨打error_message_on :password,但对于其余的表单字段,您必须为每个属性调用error_message_on一次,除了:密码。你可以编写自己的助手来避免这种情况。