我最近遇到simple_form,其中显示了必填字段的验证错误消息working example
用法:
<%= simple_form_for @user do |f| %>
<%= f.input :username %>
<%= f.input :password %>
<%= f.button :submit %>
<% end %>
在上面的用法中,它仅适用于用户表单字段(即表中存在字段),在我的rails应用程序中,用户表单将生成年份字段作为下拉列表并使用select_tag进行渲染,是否可以显示简单的表单错误其他比形式元素?我想使用simple_form显示select_tag的错误我如何实现它
答案 0 :(得分:2)
Sirius ROR
是对的 - 但我觉得您需要更多有关他们如何工作的信息:
<强> Virtual Attributes 强>
您需要一个虚拟属性,使用attr_accessor
attr_accessor
是一种用于创建getter
和setter
方法的ruby方法。这基本上意味着您可以创建一系列virtual attributes
,以便在models
虚拟属性是您声明的方法(attributes
),它们不需要存在于您的数据库中。要回答有关birth year
的问题,您需要执行以下操作:
#app/models/user.rb
Class User < ActiveRecord::Base
attr_accessor :birth_year
end
这为User
个birth_year
个对象提供@user.birth_year
属性,例如simple_form
<强>错误强>
如果您想渲染错误,您需要考虑以下几点:
首先,我认为<div class="field_with_errors">
<input type="..." >
</div>
会自动呈现您的错误(虽然不确定):
这将生成一个包含用户名和标签的整个表单 密码也是如此,并且在渲染时默认情况下渲染错误 包含无效数据的表单(例如提交后)。
其次,如果您想通过各自的字段呈现错误,则需要注意Rails会自动将错误的字段包装在:
{{1}}
这意味着如果您想在发生错误时设置此字段的样式,则必须使用CSS来执行此操作。
答案 1 :(得分:1)
您可以通过在模型中定义attr_accessor :birth_year
来执行此操作,但不会将值保存到数据库中,它只会进行验证。