Skip to content

Instantly share code, notes, and snippets.

@sinsoku
Created August 4, 2019 07:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sinsoku/7733ee17807adb25dd2340661ce5a333 to your computer and use it in GitHub Desktop.
Save sinsoku/7733ee17807adb25dd2340661ce5a333 to your computer and use it in GitHub Desktop.
state sample
# app/models/article.rb
class Article < ApplicationRecord
has_many :article_publications
scope :draft, -> { left_joins(:article_publications).where(article_publications: { id: nil }) }
scope :published, -> { joins(:article_publications) }
end
# app/models/article_publication.rb
class ArticlePublication < ApplicationRecord
belongs_to :article
end
# app/controllers/article_publications_controller.rb
class ArticlePublicationsController < ApplicationController
def create
@article = Article.find(params[:article_id])
@article_publication = ArticlePublication.new(article: @article)
if @article_publication.save
redirect_to article_path(@article), notice: "公開したよ"
else
render :new
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment