我正面临着一个奇怪的错误,不幸的是我不知道如何调查它。
integer
=>时,我在主页上呈现了某些引脚pinoftheday
设置为true。我手动将一些引脚设置为true。
对于某些引脚而言,它运行良好并且它们出现在主页上,其他一些则没有。顺便说一下,我正在检查我的控制台,它们被正确设置为真。
以下是一些代码:
<% @pins.each do |pin| %>
<% if pin.pinoftheday %>
(...) some informations about the pin
<% end %>
<% end %>
我有什么想法可以检查为什么有些引脚没有渲染?我现在没有写任何测试...我知道这是愚蠢的,但我还没有学会测试轨道。
谢谢。
编辑:是的,在我的代码中它是一个引脚模型。我想用post来让它更清晰。想象它不是:) - 编辑它到正确的模型:pin。
答案 0 :(得分:1)
尝试以下代码。
<% @postss.each do |post| %>
<% if post.pinoftheday %>
(...) some informations about the pin
<% end %>
<% end %>
答案 1 :(得分:0)
如果我理解你的代码,那么将在下面:
<% @postss.each do |pin| %>
<% if pin.pinoftheday.nil? %>
(...) some informations about the pin
<% else %>
(...) some informations about the pin
<% end %>
<% end %>
希望能帮到你
答案 2 :(得分:0)
您的问题是,您已在块中定义了local variable,并且正在引用另一个:
<% @postss.each do |post| %>
<% if post.pinoftheday %>
...
<% end %>
<% end %>
-
您最好使用scope:
#app/models/post.rb
class Post < ActiveRecord::Base
scope :pin_of_the_day, -> { where pinoftheday: true }
end
您也可以制作pinoftheday
专栏boolean
。如果您引用1 = true; 0 = false
,Rails会在您的数据库中使用tinyint
处理它,并将true/false
作为布尔逻辑调用。您可以调用true
等
以上将允许您致电:
#app/controllers/your_controller.rb
class YourController < ApplicationController
def index
@postss = Post.pin_of_the_day
end
end
这将删除低效的条件逻辑(<% if ...
):
<% @postss.each do |post| %>
...
<% end %>