RoR:如何在同一视图中以两种不同的方式定义@microposts?

时间:2012-09-25 06:51:22

标签: ruby ruby-on-rails-3

我正在尝试将搜索(微博)功能放入我的应用程序中。所有这些方法都涉及给出定义

@microposts=Micropost.search(params[:search])

或类似的东西。你总是要在microposts_controller.rb中定义@microposts

问题是我已经

def home
     @microposts=Micropost.all
end

因为最初主页只是所有微博的列表。一旦用户使用搜索功能,我该如何更改定义。这是唯一的方法吗?我是否需要if then语句。

就像他们按搜索@ microposts = Micropost.search(params [:search])否则@ microposts = Micropost.all?我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

最初加载页面时,我猜params[:search]不存在。所以你可以试试:

if params[:search].present?
  @microposts=Micropost.search(params[:search])
else 
  @microposts=Micropost.all