這是我的第一個Rails項目。出於某種原因,我無法發佈到我的數據庫中的一列,儘管同一個表中的其他列工作正常。 (當我在同一個表中填充其他列時,我也無法使用Faker gem來填充該列,因此我只是進入數據庫並手動填充它們,以便可以移過它。)Ruby on Rails form_for發佈到數據庫不能用於一列,而是用於同一表中的其他人
我的數據庫有一個表「文章」與列「ID」「內容」「user_id」「created_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 %>
我articles_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
當我嘗試提交表單,它在我的標題驗證或者漁獲物(:存在=>真)或者只是提交沒有標題,如果我註釋了驗證。該帖子發送這些參數:
{"utf8"=>"✓",
"authenticity_token"=>"...",
"article"=>{"heading"=>"Test heading",
"content"=>"Test content"},
"commit"=>"Submit"}
它看起來像有一個標題。所有其他列都被填入,包括user_id。爲什麼標題不填寫?我已經運行耙分貝:遷移,還增加了reset_column_information到我的遷移:
def self.up
add_column :articles, :heading, :string
Article.reset_column_information
end
但它沒有工作,要麼方式。另外,如果我進入rails控制檯並添加一篇新文章,我可以添加一個沒有問題的標題。
如果重要,我使用SQLite。我在稍後的遷移中添加了標題列,是否可能成爲列順序最後的問題?