2010-06-09 53 views
0

我在一个视图中更新用户配置文件有两种形式。一种形式是更新我的名字等,另一种是更改我的密码。如何在一个页面上将两种形式的error_message分开?

档案形式:

- 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都会显示相同的错误消息。

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

回答

2

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

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

相关问题