我正在尝试为我的应用程序构建“精选帖子”功能。我有一个表posts
与列feature_date
。我正在努力设计,以便您可以点击结构为/year/month/date
的网址,并显示所有具有与URL中的日期相匹配的feature_date的条目。从URL传递日期参数以筛选数据库中的条目列表
我routes.rb
正确地路由到posts控制器:
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>
的错误,但我相信这是因为@featured_posts
将返回nil
(我不知道如何确认,似乎只是为什么.each会是一个未定义的方法)。
工作完美。谢谢! –