2011-09-07 39 views
0

我的模型是:Projectshas_manyFeeds。我剛剛在Feed表中添加了一列名爲feed_error的列。我目前在應用程序上有一個表單,它在輸入時創建一個新的Feed。我希望能夠將feed_error默認設置爲false。在我feeds_controller,我有我創建方式:當創建新的obect Ruby on Rails時添加默認表字段3

def create 
@feed = Project.find(params[:project_id]).feeds.build(params[:feed]) 

respond_to do |format| 
    if @feed.save 
    format.html { redirect_to(:back, :notice => 'Feed was successfully created.') } 
    format.xml { render :xml => @feed, :status => :created, :location => [@feed.project, @feed] } 
    else 
    format.html { render :action => "new" } 
    format.xml { render :xml => @feed.errors, :status => :unprocessable_entity } 
    end 
end 
end 

我想我可以嘗試添加:feed_error => 'false'的參數,可以,但似乎並沒有工作。如何默認設置此字段?

回答

1

你有幾個選項。在你的控制器中你可以這樣做:

def create 
@feed = Project.find(params[:project_id]).feeds.build(params[:feed]) 
@feed.feed_error = false 

respond_to do |format| 
    if @feed.save 
    format.html { redirect_to(:back, :notice => 'Feed was successfully created.') } 
    format.xml { render :xml => @feed, :status => :created, :location => [@feed.project, @feed] } 
    else 
    format.html { render :action => "new" } 
    format.xml { render :xml => @feed.errors, :status => :unprocessable_entity } 
    end 
end 
end 

你也可以在你的數據庫遷移中設置它。例如,如果您不需要空值,而是希望默認值爲false,則可以添加:

t.boolean "feed_error", :null => false 

到您的遷移。