0

私のモデルは次のとおりProjects has_many Feedsです。Feedsテーブルに。という列を追加しましたfeed_error。現在、入力時に新しいフィードを作成するフォームがアプリにあります。デフォルトでに設定できるようfeed_errorにしたい。false私の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 に答える