0

アプリの「注目の投稿」機能を構築しようとしています。posts列を持つテーブルを取得しましたfeature_date/year/month/dateとして構造化された URL をヒットし、URLの日付と一致する feature_date を持つすべてのエントリを表示できるようにしようとしています。

routes.rbは投稿コントローラーに正しくルーティングしています:

match "/:year/:month/:day", to: 'posts#index', via: 'get', :constraints => { :year => /\d{4}/, :month => /\d{2}/, :day => /\d{2}/ }, :as => 'post_date'

post_controller.rbただし、正しく使用していないと思います:

def index
  @date = params[:year].to_s + "/" + params[:month].to_s + "/" + params[:day].to_s
  @featured_posts = Post.find_by(feature_date: @date)
end

これは、Ruby で行うにはあまりにも洗練されていないように思えます。

ビューが壊れていますが、コントローラーからのものだと思います:

<% @featured_posts.each do |post| %>
<tr>
  <td><%= post.title %></td>
  <td><%= post.url %></td>
  <td><%= post.user.name %></td>
  <td><%= link_to 'Delete', post_path(post), method: :delete, data: { confirm: "Are you sure?" } %></td>
</tr>
<% end %>

スローされているエラーは ですが、 が返さundefined method 'each' for #<Post:0x007f94393bc7a0>れたためだと思います(それを確認する方法がわかりません。.each が未定義のメソッドになる理由のようです)。@featured_postsnil

4

1 に答える 1