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

问题描述 投票:22回答:4

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

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

<%= text_field_tag(:create_text), :input_html => {:maxlength => 15, :size => 40}  %>

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

ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1 ruby-on-rails-3.2
4个回答
39
投票

以下是如何做到这一点:

<%= text_field_tag 'create_text', nil, :maxlength => 15, :size => 40 %>

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


13
投票

在text_field_tag调用中:

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

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

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

validates_length_of :column_name, :maximum => 5

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

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

add_column :table_name, :column_name, :string, :limit => 30

1
投票
 <%= text_field_tag :"description", '', maxlength: 5   %>
<input type="text" name="description" id="description" value="" maxlength="5">

-4
投票

你可以试试这个

<%=text_field_tag 'create_text',:size=>40 %>
© www.soinside.com 2019 - 2024. All rights reserved.