Форма Ruby on Rails для публикации в базе данных не работает для одного столбца, но для других в той же таблице - PullRequest
2 голосов
/ 01 апреля 2011

Это мой первый проект Rails.По какой-то причине я не могу разместить один столбец в моей базе данных, хотя остальные столбцы в той же таблице работают нормально.(Я также не мог заполнить этот столбец с помощью гема Faker, когда заполнил другие столбцы в той же таблице, поэтому я просто вошел в базу данных и заполнил их вручную, чтобы я мог пройти мимо нее.)

В моей базе данных есть таблица «статьи» со столбцами «id», «content», «user_id», «updated_at», «updated_at» и «заголовок».Моя форма для создания новой статьи выглядит следующим образом:

<%= form_for @article do |f| %>
  <div class="field">
    <%= f.text_field :heading, :size => "60x1" %>
  </div>
  <div class="field">
    <%= f.text_area :content, :size => "60x24" %>
  </div>
  <div class="actions">
    <%= f.submit "Submit" %>
  </div>
<% end %>

Мой article_controller имеет:

def new
 @article = Article.new
end

def create
 if @article = current_user.articles.create!(params[:article])
   redirect_to root_path, :flash => { :success => "Article created!" }
 else
   redirect_to "/articles/new"
 end
end

Когда я пытаюсь отправить форму, она либо попадает в мою проверку заголовка (:наличие => true) или просто отправляет без заголовка, если я закомментирую проверку.Сообщение отправляет эти параметры:

{"utf8"=>"✓",
"authenticity_token"=>"...",
"article"=>{"heading"=>"Test heading",
"content"=>"Test content"},
"commit"=>"Submit"}

Похоже, что есть заголовок.Заполняются все остальные столбцы, включая user_id.Почему заголовок не заполняется?Я запустил rake db: migrate и также добавил в свою миграцию reset_column_information:

def self.up
 add_column :articles, :heading, :string
 Article.reset_column_information
end

Но в любом случае это не сработало.

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

Если это имеет значение, я использую SQLite.Я добавил столбец заголовка в более позднюю миграцию. Может ли быть проблемой, что он будет последним в порядке столбцов?

1 Ответ

2 голосов
/ 01 апреля 2011

Я занимался этим в течение нескольких дней, и на самом деле я просто решил это, как только отправил.В моем article.rb у меня было:

attr_accessible :content

Мне пришлось изменить его на:

attr_accessible :content, :heading
...