如何将来自before_filter的变量传递给视图

时间:2011-05-16 05:52:06

标签: ruby-on-rails ruby-on-rails-3

我想知道如何将@current_day和@has_day传递给我的观点?

class PostController < ApplicationController
  before_filter :detect_current_day

  def index
    #some logic
  end

 private

 def detect_current_day
    if (params[:year] && params[:month] && params[:day])
      @current_day =  Date.parse params.values_at(:year, :month, :day).join('.')
    else
      @current_day = Date.today;
    end

    # Check if day already exist
    @hasToday = Post.created_on(@current_day).count > 0 ? true : false;
  end

end

由于

2 个答案:

答案 0 :(得分:1)

您已正确完成,但您希望错误的实例变量。你定义了@current_day和@hasToday。如果您希望在过滤前的@ has_day.please初始化

,您将在视图中获取它
@has_day = Post.created_on(@current_day).count > 0 ? true : false;

答案 1 :(得分:0)

我没有看到您的代码有任何问题,但您的@current_day是日期格式,如果您想在视图中打印出来,则需要将其转换为:

<%= @current_day.strftime("%Y %m %d") %>