2013-02-12 2 views
0

У меня есть форма, в которой пользователь выбирает категорию из раскрывающегося списка. Вот код, на мой взгляд:collection_select misbehaving

<%= collection_select(:project_categories, :id, Project_Category.all, :id, :category_name) %> 

Все остальные поля в форме (да, collection_select находится внутри формы), за исключением и чтения из базы данных, как и ожидалось. Но не collection_select ...

Вот модель:

class Project < ActiveRecord::Base 
    attr_accessible :category, 
    ... 
    belongs_to :user 
    has_one  :category 
    ... 
end 

Контроллер:

def create 
    @user = current_user 
    @project = current_user.build_project(params[:project]) 
    @project.save 
    render 'edit' 
end 
... 
def update 
    @project = Project.find(params[:id]) 
    @user = current_user 
    @project.current_step = session[:step] 
end 
... 
    private 

    def correct_user 
    @project = current_user.project 
    redirect_to show_user_path if @project.nil? 
    end 

    def has_project 
    @project = current_user.projects.find_by_id(params[:id]) 
    end 
end 
+0

Project_Category? Что это? –

ответ

0

Вы пытаетесь присвоить каждому проекту категорию? Если ваши отношения настроены правильно, это должно быть что-то вроде:

<%= collection_select(:category_id, Category.all, :id, :name) %> 

Вашей Project модели потребуется :category_id целого.