collection_select и сохранение записи в ruby ​​на рельсах - PullRequest
0 голосов
/ 27 января 2012

Я пытаюсь выучить ruby ​​на рельсах, пишу свое собственное простое приложение (список дел). Теперь я хочу добавить выпадающее меню, чтобы выбрать пользователя, которому нужно назначить задачу.

Моя схема.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

Я уже установил отношения (у пользователя много задач, у задачи один пользователь). Что мне не хватает? Большое спасибо за любую помощь!

Ответы [ 2 ]

0 голосов
/ 28 июля 2013
<%= collection_select(:item, :user_id, User.all, :id, :name, {:prompt=>true}) %>
                       1.     2.       3.         4.   5.       6.
  1. Модель

  2. Где вы храните в модели

  3. сбор пользователей

  4. что будет сохранено

  5. что отображается

  6. подсказка с "пожалуйста выберите"

Это может помочь.

0 голосов
/ 27 января 2012

У вас нет столбца 'user_id' в таблице 'items'.

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...