在我的 Rails 应用程序中,我有一个电影表,一部电影有一个 release_date(日期/月/年)。
我还有一个年份表,它将显示特定年份的所有电影如果我创建 2013 年,我想显示 2013 年的所有电影
在我多年的控制器中,在 :show 动作中,我有这个
@movies = Movie.where(:release_date => :ynumber)
但它没有显示那一年的任何电影,即使有些电影的 release_date 是 2013 年。
我假设它没有显示,因为当我调用 :release_date 时,它正在显示(日期/月/年)。我怎样才能让它只显示year
?
我试过使用.strftime("%Y")
,.strptime("%Y")
但这些似乎不起作用
PS:我在开发模式下使用 SQLite3,在生产模式下使用 PostgreSQL
年#show
def show
@year = Year.find(params[:id])
#those i've tried seperately which havent worked
@movies = Movie.where("extract(year from release_date) = ?", ynumber)
@movies = Movie.where("extract(year from release_date) = ?", :ynumber)
@movies = Movie.where("extract(year from release_date) = ?", 'ynumber')
@movies = Movie.where("extract(year from release_date) = ?", ':ynumber')
@movies = Movie.where("extract(year from release_date) = ?", params[:ynumber])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @year }
end
end