在我的应用程序中,我有一个名为tested
的字段,它是一个boolean
字段。
我想要实现的是一个简单的checkbox
,用户可以在其中基于tested
选中或取消选中并过滤。
在我的模型中,我有:
filterrific :default_filter_params => { :sorted_by => 'created_at_desc' },
:available_filters => %w[
sorted_by
search_query
with_created_at_gte
with_tested
]
scope :with_tested, lambda { |flag|
return nil if 0 == flag # checkbox unchecked
where(tested: true)
}
/// Other scopes
在我的视图/表单中,我有:
= f.check_box :with_tested
在我的模型中,我也尝试过其他没有运气的方法:
scope :with_tested, lambda { |value|
where('posts.tested = ?', value)
}
// and
scope :with_tested, lambda { |query|
return nil if 0 == query # checkbox unchecked
where('posts.tested == ?', query)
}
// and
scope :with_tested, lambda { |flag|
return nil if 0 == flag # checkbox unchecked
where(tested: [flag])
}
当我尝试基于tested
进行过滤时,可以看到我的过滤器正在尝试过滤(我看到过滤器旋转),但是我的记录未正确过滤。< / p>
我不确定我做错了什么。任何建议和帮助,表示赞赏!
过滤器的所有其他部分都可以正常工作
PS:我没有在控制器中添加with_tested
,因为我知道我不需要它
版本:
Ruby on Rails:4.2.4
极好:2.1.2
答案 0 :(得分:0)
问题是import numpy as np
df = np.ndarray((2000,10))
x, y = df[:, 2:9], df[:, 9]
x.shape, y.shape # << what you should give to `clf.fit`
# ((2000, 7), (2000, ))
x.reshape(-1, 1).shape, y.shape # << what you ARE giving to `clf.fit`,
# ((14000, 1), (2000,)) # << which is causing the problem
,因为尚未对其进行设置到where(tested: [flag])
或true
。要解决此问题,false
应该知道在这种情况下where
的情况。
因此,value
应该更改为:where(tested: [flag])
或where(tested: true)
。
首先,您需要在where(tested: false)
中进行指定:
model
在您的scope :with_tested, lambda { |flag|
return nil if 0 == flag # checkbox unchecked
where(tested: true)
}
中执行以下操作:
view
并在= f.check_box :with_tested
的控制器中添加:with_tested
。
PS:代码已经过测试并且可以正常工作