0

我的模型是:Projects has_many Feeds. 我刚刚在我的 Feeds 表中添加了一个名为feed_error. 我目前在应用程序上有一个表单,在输入时会创建一个新的 Feed。我希望能够默认设置feed_errorfalse。在我的 feeds_controller 中,我有我的 create 方法:

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'参数,但这似乎不起作用。如何默认设置此字段?

4

1 回答 1

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

您也可以在数据库迁移中进行设置。例如,如果您不需要 null 值,而是希望默认值为 false,您可以添加:

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

到您的迁移。

于 2011-09-07T21:18:18.693 回答