1

私は非常に単純な Rails 3.0.7 アプリを持っており、投稿を作成または編集するときに単純なセレクターフォームだけで、サイトの一般的な訪問者に投稿を公開するタイミングを制御しようとしています。

このタスクに取り組むための最良の方法は何ですか?

乾杯ダン

4

1 に答える 1

1

ブール値publishedまたはタイムスタンプのいずれかpublished_atPostモデルに追加し、それを作成/編集投稿フォームに追加するだけです。

ブール値の方法は単純で、投稿を公開するかどうかだけを言いたい場合に機能しますが、タイムスタンプの方法は、事前に投稿を作成し、特定の日付に自動的に公開できるようにする場合に機能します。または時間。

次に、公開された投稿を簡単に取得するためのスコープを作成します。上記のブール値とタイムスタンプのどちらの方法を選択したかによって、これは少し異なります。

# 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
于 2012-12-21T17:11:47.427 に答える