Ruby on rails 在创建新的ObjectRubyonRails3时添加默认表字段

Ruby on rails 在创建新的ObjectRubyonRails3时添加默认表字段,ruby-on-rails,actioncontroller,Ruby On Rails,Actioncontroller,我的模型是:项目有许多提要。我刚刚在feed表中添加了一列,名为feed\u error。我目前在应用程序上有一个表单,在输入时创建一个新的提要。我希望能够在默认情况下将feed\u error设置为false。在我的feeds\u控制器中,我有我的创建方法: def create @feed = Project.find(params[:project_id]).feeds.build(params[:feed]) respond_to do |format| if @feed.save

我的模型是:
项目
有许多
提要
。我刚刚在feed表中添加了一列,名为
feed\u error
。我目前在应用程序上有一个表单,在输入时创建一个新的提要。我希望能够在默认情况下将
feed\u error
设置为
false
。在我的feeds\u控制器中,我有我的创建方法:

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”
添加到参数中,但这似乎不起作用。默认情况下如何设置此字段?

您有两个选项。在控制器中,您可以执行以下操作:

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
为了你的迁移