2017-03-15 21 views
1

私はを最初に取得しようとしていますここではactive=1を返し、jsonを返します。GET .jsonで空配列。

# GET /banners.json 
def index 
    @banners = Banner.where(active: '1').first 
end 

これは空の配列[]を返します。 私が変更して行う場合Banner.Allすべてのデータを正しく返します

答えて

2

これはコードよりもデータに関係します。明らかに、active1に等しいバナーはありません。それがあれば、Railsはあなたのためにそれを返すのに十分な正直さです。これより

より良い、あなたはこのようなBannerモデルにスコープを作成することができます

scope :active, -> { where(active: 1) } 

そして、あなたのコントローラには、次のようにそれを呼び出すことができます。

def index 
    @banners = Banner.active.first 
end