我正在使用Simple Form for rails 4,我正在尝试使用belongs_to
和has_many
方法显示基于模型的表单。但是,我的模型覆盖了名称约定,因为我使用的是旧版DB:
class Almacen < ActiveRecord::Base
self.table_name = "CATALMA"
self.primary_key = "COD_ALM"
alias_attribute :COD_ZONA, :cod_zona
alias_attribute :zona_id, :cod_zona
belongs_to :zona
validates :NOM_ALM, presence: true
end
class Almacen < ActiveRecord::Base
self.table_name = "CATALMA"
self.primary_key = "COD_ALM"
alias_attribute :COD_ZONA, :cod_zona
alias_attribute :zona_id, :cod_zona
belongs_to :zona
validates :NOM_ALM, presence: true
end
在表格中,相关部分是:
<%= f.association :zona %>
答案 0 :(得分:0)
您应该在Zone
模型中定义to_s
方法,返回名称或类似名称的内容(我不知道此列的名称是什么,假设它是zone_name
)。
class Zone < ActiveRecord::Base
def to_s
"The #{zone_name}"
# attribute that return column name
end
end
<%= f.association :zona %>
在您的表格区域id
中使用2列,如果未在第二个列中提供,则使用模型"#<Zone:0x000000064e1e88>"
的字符串表示形式。
其他方法是为f.assocation(...)
方法添加更多选项。
f.association :zone, label_method: :zone_name, value_method: :id, include_blank: false