Добавление категорий в мои статьи в приложении Rails (небольшая справка) - PullRequest
0 голосов
/ 25 марта 2010

В настоящее время я создаю полумалое рубиновое приложение для проекта. Проблема, с которой я сейчас сталкиваюсь, заключается в следующем:

Я хочу уметь вписать статью в категории. Я уже достиг этого, имея две модели. Модель статьи с внешним ключом category_id и модель моей категории с названием категории. С отношениями has_one и belogs_to. (Мы предполагаем, что вы можете поместить статью только в одну категорию). Вот кусок кода.

Это новый метод, где я создаю новую статью и загружаю все категории.

def new  
 @article = Article.new  
 @categories = Category.find(:all)  
end

Проблема возникает, когда я пытаюсь получить категорию из поля со списком, чтобы вставить ее вместе со статьей.

Это код поля со списком:

f.select(:category_id,@categories)

И это метод создания:

def create  
  @category = Category.find(params[:id])  
  @article = @category.articles.new(params[:article])  

  if @article.save  
    flash[:notice] = "Article Submitted Sucessfully"  
    redirect_to user_path  
  else  
    render :action => 'new'  
  end  
end  

Я считаю, что проблема, с которой я столкнулся, заключается в этой строке, когда я пытаюсь загрузить выбранную категорию "@category = Category.find (params [: id])", потому что всякий раз, когда я жестко кодирую эту строку в

@category = Category.find(1)

Отлично работает

1 Ответ

2 голосов
/ 25 марта 2010

Проблема заключается в f.select. Второй параметр не устанавливает значение списка опций для идентификатора категории. Методы выбора конструктора форм вроде бы отсутствуют. Я бы сделал это вместо:

<%= collection_select :article, :category_id, @categories, :id, :name, @article.category_id %>

и это должно получить правильное значение для контроллера.

Тогда в контроллере можно заменить:

@category = Category.find(params[:id])  
@article = @category.articles.new(params[:article])  

с

@article = Article.new(params[:article])

Категория_идентификатора будет исходить из параметров и будет установлена ​​правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...