Rails:将用户ID保存到数据库,但仅在视图中显示用户名

时间:2015-12-02 14:09:06

标签: ruby-on-rails

在我的"销售" -View中我想手动将UserID分配给" Sale"。 通常,用户ID和名称通过

保存在控制器中
@sale.user_id = current_user.id
@sale.name = current_user.name

但是我想手动覆盖这些值:

<%= f.select :user_id, User.all.map { |c| "#{[c.name]} #{[c.id]}" }, :prompt => "Choose..", class: "form-control" %>

但是这个尝试将整个数组保存到sale.user_id列。你会如何解决这个问题?

简而言之:Dropdown只应显示用户名,但会将UserID保存到数据库中。

非常感谢提前!

2 个答案:

答案 0 :(得分:1)

这应该有效:

<%= f.collection_select(:user_id, User.all, :id, :name, {prompt:true}, {class: 'form-control'}) %>

希望它有所帮助!

答案 1 :(得分:0)

<%= f.select :user_id, User.all.map { |c| [c.name, c.id] }, :prompt => "Choose..", class: "form-control" %>