2011-03-31 55 views
2

這是我的第一個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。我在稍後的遷移中添加了標題列,是否可能成爲列順序最後的問題?

回答

2

我已經過了很多天,我實際上剛剛解決它,只要我發佈它。在我article.rb,我有:

attr_accessible :content 

我不得不將其更改爲:

attr_accessible :content, :heading 
相關問題