在RoR的"文本"字段中设置最大长度

div*_*ivz 22 ruby ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 ruby-on-rails-3.2

有没有人设法为文本字段设置最大字段长度

如何设置文本字段的最大长度.这是我使用的代码

<%= text_field_tag(:create_text), :input_html => {:maxlength => 15, :size => 40}  %>
Run Code Online (Sandbox Code Playgroud)

但我似乎无法设置可以键入字段的最大字符数.

M. *_*her 40

以下是如何做到这一点:

<%= text_field_tag 'create_text', nil, :maxlength => 15, :size => 40 %>
Run Code Online (Sandbox Code Playgroud)

资料来源:http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html#method-i-text_field_tag


Dan*_*ron 14

text_field_tag调用中:

:size与文本框的物理长度有关.它足够大,允许在框中显示许多字符.但是用户仍然可以输入更多.

:maxlength是用户可以输入的最大字符数,与文本框的物理大小无关.文本框可以更大或更小,但如果设置:maxlength => 5,它们只能输入5个字符.

如果这是您对数据库中数据的硬限制,则应设置验证.例如,这可以防止您在Rails代码中将其设置为更多字符.

validates_length_of :column_name, :maximum => 5
Run Code Online (Sandbox Code Playgroud)

最后,对于皮带和吊带方法以及防止甚至针对数据库的代码设置错误值,您可以在数据库级别强制执行它.在某些情况下,除Rails应用程序之外的其他代码可能会更新数据库.即使在这种情况下,这也可以防止坏数据

在迁移中添加列,您可以这样做:

add_column :table_name, :column_name, :string, :limit => 30
Run Code Online (Sandbox Code Playgroud)