根据数据库大小创建maxlength输入

时间:2015-05-15 10:32:55

标签: ruby-on-rails

如何在我的视图中编写text_field,自动是否尊重数据库字段的大小?

我的迁移:

t.string :name, limit: 100

我的观点:

<%= f.text_field :name %>

2 个答案:

答案 0 :(得分:0)

在模型中使其成为常数:

class User < ActiveRecord::Base
  MAX_NAME_SIZE = 100

  validates :name, length: { maximum: MAX_NAME_SIZE }
end

并以表格形式使用:

<%= f.text_field :name, size: User::MAX_NAME_SIZE %>

答案 1 :(得分:0)

嗯,有办法完成它。在/helper目录中编写代码,并将方法放在:

module ApplicationHelper
  def column_info model_name, field_name, option
    model_name.constantize.column_types[field_name].public_send option
  end 
end

现在,在视图中的任何位置使用此辅助方法..

<%= f.text_field :name, size: column_info('Person', :name, :limit) || 100 %>