我正在尝试在rails上学习ruby,编写我自己的简单应用程序(待办事项列表)。我现在想要添加一个下拉菜单来选择要将任务分配给的用户。
我的schema.rb:
create_table "items", :force => true do |t|
t.text "description"
t.string "priority"
t.date "date"
t.time "time"
t.datetime "created_at"
t.datetime "updated_at"
t.boolean "done"
t.string "name"
end
create_table "users", :force => true do |t|
t.string "name"
t.datetime "created_at"
t.datetime "updated_at"
end
现在,在我的表格中,我有一个字段:
<%= f.collection_select(:user, User.all, :id, :name ) %>
它可以显示我的用户去。但是,当我尝试保存时,我当然得到:
ActiveRecord::AssociationTypeMismatch in ItemsController#create
我已经建立了关系(用户有很多任务,任务有一个用户)。我错过了什么? 非常感谢您的帮助!
答案 0 :(得分:0)
'items'表中没有'user_id'列。
rails g migration AddUserToItems user_id:integer
rake db:migrate
class Item
belongs_to :user
...
end
class User
has_many :items
...
end
collection_select(:item, :user_id, User.all, :id, :name)
答案 1 :(得分:0)
<%= collection_select(:item, :user_id, User.all, :id, :name, {:prompt=>true}) %>
1. 2. 3. 4. 5. 6.
模特
您在模型中存储的位置
收集用户
将保存的内容
显示的内容
提示“请选择”
这可能会有所帮助。