1. ホーム
  2. ruby-on-rails

[解決済み] Ruby on Rails での Welcome/home ページ - ベストプラクティス

2023-06-30 12:53:19

質問

私のホームページ(またはウェルカムページ)は、2つのモデル(著者と投稿と呼ぶことにします)からのデータで構成されます。私はrailsの初心者で、これを達成するための最良の方法は何であるかわかりません。

著者と投稿からデータを収集するwelcomeという新しいコントローラを作成し、welcomeインデックスビューにそれらを表示すべきでしょうか?あるいは、著者からのデータも取得する、投稿モデルの下に歓迎ビューを持つべきでしょうか?または、これを達成するための他の方法はありますか?

私はこのすべてを技術的に行う方法を理解していますが、railsフレームワークを使用したベストプラクティスの方法がわからないだけです。

どのように解決するのですか?

問題は、トップページが単なるランディングページなのか、それとも複数のページで構成されるのか、ということです。 単なるランディングページであれば、ユーザーが他の場所に移動する以外、そこに長く滞在することは期待できません。 もしそれがページのグループであったり、既存のグループと類似しているのであれば、最も似ているコントローラにアクションを追加することができます。

現在のプロジェクトで私が行ったことは Static というコントローラです。 トップページはそのうちの1つで、他の場所に行く以外は見るものもするものもないからです。

デフォルトルートをマッピングするには、以下のように routes.rb :

# Place at the end of the routing!
map.root :controller => 'MyController', :action => :index

私の場合はこうなります。

map.root :controller => 'static', :action => :index

もし望むなら、このホームページのためだけのコントローラを作成することができます。 私ならmainと呼ぶか、ホームページに関連する覚えやすい名前にします。 そこからデータとモデルを取得し、出力ビューに委ねることができます。

class MainController < ApplicationController
  def index
    @posts = Posts.find(:all, :limit => 10, :order => 'date_posted', :include => :user)
  end
end

モデルの関係が正しく定義されていると仮定すれば、それに合わせたテンプレートは非常にシンプルなものになります。

幸運を祈る、これが役立つことを願う。