我的模型是:Projects
has_many
Feeds
。我刚刚在我的Feeds表中添加了一个名为feed_error
的列。我目前在应用上有一个表单,可在输入时创建新Feed。我希望默认情况下能够将feed_error
设置为false
。在我的feeds_controller中,我有我的创建方法:
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'
添加到参数中,但这似乎不起作用。如何默认设置此字段?
答案 0 :(得分: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
迁移。