在输入中显示名称,但将id发送到后端

时间:2015-11-24 20:01:30

标签: ruby-on-rails forms simple-form typeahead.js

我正在尝试扩展简单表单,以便我可以使用输入(不是选择,只是文本输入)来选择帐户的所有者。我希望在我编辑表单时在表单中显示帐户所有者的姓名,并在我提交表单时将其uuid发送到后端。我已经获得了一个预先输入菜单,可以按照名称从数据库中显示用户,但是我无法弄清楚如何将其中一个用户的uuid发送给他们地选择。

到目前为止,我已经发现我需要做这样的事情

  = simple_for_for @account do |f|
    = f.error_notification

    = f.input :name
    = f.simple_fields_for @account.contact do |p|
      = p.input :name

    = f.button :submit

1 个答案:

答案 0 :(得分:0)

显示simpleform相关记录下拉列表的正确方法如下:

simple_form_for :main_model do |f|
  f.input :name
  f.association :relationship_name_to_related_model
  f.submit
end

这将自动使用related_model的名称字段填充选择框,并将ID作为值。

如果您的列与标准不符,您可以否决这些默认值:

f.association :relationship_name_to_related_model, label_method: :name_of_label_column, value_method: :name_of_id_column