私は非常に単純な Rails 3.0.7 アプリを持っており、投稿を作成または編集するときに単純なセレクターフォームだけで、サイトの一般的な訪問者に投稿を公開するタイミングを制御しようとしています。
このタスクに取り組むための最良の方法は何ですか?
乾杯ダン
私は非常に単純な Rails 3.0.7 アプリを持っており、投稿を作成または編集するときに単純なセレクターフォームだけで、サイトの一般的な訪問者に投稿を公開するタイミングを制御しようとしています。
このタスクに取り組むための最良の方法は何ですか?
乾杯ダン
ブール値published
またはタイムスタンプのいずれかpublished_at
をPost
モデルに追加し、それを作成/編集投稿フォームに追加するだけです。
ブール値の方法は単純で、投稿を公開するかどうかだけを言いたい場合に機能しますが、タイムスタンプの方法は、事前に投稿を作成し、特定の日付に自動的に公開できるようにする場合に機能します。または時間。
次に、公開された投稿を簡単に取得するためのスコープを作成します。上記のブール値とタイムスタンプのどちらの方法を選択したかによって、これは少し異なります。
# boolean method
class Post < ActiveRecord::Base
# ... other stuff
scope :published, where(:published => true)
# ...
end
# timestamp method
class Post < ActiveRecord::Base
# ... other stuff
scope :published, lambda { where("published > ?", Time.now) }
end
最後に、公開された投稿をユーザーに一覧表示するコントローラーで、次のようにします。
class PostsController < ApplicationController
def index
@posts = Post.published
end
end