ユーザーが記事をドラフトに設定できる文字列フィールドを持つarticlesというモデルがあります。下書きが選択され、ユーザーが投稿を更新すると、ユーザーが公開オプションを選択したかのように記事編集ページに戻り、ユーザーが記事のインデックスページにリダイレクトされるようにします。
問題は、ドラフトオプションが選択されている場合、記事を更新して投稿にリダイレクトできないことです。私はこれに間違った方法でアプローチしていますか?
移行ファイル
def change
add_column :articles, :status, :string, default: 'Draft'
end
articles.rb
scope :submitted, lambda { where('status = ?', 2) }
scope :draft, lambda{ where('status = ?', 1) }
def is_draft?
self.draft
end
記事コントローラー
def update
case @article.status
when 1
@article.status = 'Draft'
else 2
@article.status = 'Published'
end
if @article.status == 1
@article = article.find(params[:id])
flash[:notice] = "Successfully Updated" if @article.update_attributes(params[:article])
respond_with(@article, :location => edit_article_path)
else
@article = article.find(params[:id])
flash[:notice] = "Successfully Updated" if @article.update_attributes(params[:article])
respond_with(@article, :location => articles_path)
end
end