collection_select и не представленная база данных - PullRequest
1 голос
/ 17 февраля 2010

У меня небольшая проблема, и она действительно беспокоит меня.

У меня есть весь стандартный код лесов в контроллерах, чтобы предоставить мне стандартные функции CRUD.

На мой взгляд, помощник по форме collection_select:

    <%= collection_select(:link,:category_id,@categories,:id,"name") %>

Таблица ссылок имеет столбец category_id. Это публикуется нормально, так как при отладке это дает: ` ... "Ссылка" => { "имя" => "", "Category_id" => "1", ...

Однако он не передается в базу данных, и любая проверка правильности category_id завершается неудачей.

Методы контроллера:

 def new
    @link = Link.new
    @categories = Category.find(:all)
  end

  def create
    @link = Link.new(params[:link])
    if @link.save
      flash[:notice] = "Successfully created link."
      redirect_to @link
    else
      render :action => 'new'
    end
  end

Форма из представления

<% form_for @link do |f| %>
<%= f.label :name %><br />
<%= f.text_field :name %>......

Ответы [ 2 ]

2 голосов
/ 18 февраля 2010

Наконец-то решил, я проверил логи, и эта ошибка:

WARNING: Can't mass-assign these protected attributes: category_id

Я добавил 'category_id' в attr_accesible 'в моей модели, и он отлично работает.

2 голосов
/ 17 февраля 2010

Измените свой collection_select с

 <%= collection_select(:link,:category_id,@categories,:id,"name") %>

до

 <%= f.collection_select(:category_id,@categories,:id,"name") %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...