2016-04-10 12 views
0

试图将特定的标题轨忽略没有得到在完整场“真正”价值和拥有的节日在EVENT_TYPE领域

这就是我在我此刻的控制器行。

def search 
    @events = Event.search params[:search], suggest: true, misspellings: { distance: 1 }, order: { date: :asc, eventname: :asc }, match: :word_start 
    if @events.results.any? 
     render 'events/results' 
    else 
     render 'events/noresults' 
    end 
    end 

基本上是我希望发生的是,如果显示的行具有EVENT_TYPE为节日和完整场是不正确的,我不要显示什么样的结果。

这会在视图或控制器上完成吗?该视图仅仅是一个基本的每一个都

感谢

山姆

+0

所以调用此操作,当用户访问'/events?search = '?节日和搜索之间又有什么联系? –

回答

0

你可以做搜索的独占子集:

@events = Event.where("event_type != 'festival' AND complete=TRUE").search params[:search], suggest: true, misspellings: { distance: 1 }, order: { date: :asc, eventname: :asc }, match: :word_start 
+0

我想我可能已经把这个问题搞砸了,这只会让节日完整无误。例如如果event_type是音乐会。并没有任何内容会显示音乐会的真实内容? –

+0

不,这个解决方案需要TRUE,你可以用'complete!= FALSE'来包含未定义的完整状态。你是否像这样改变它,你会得到所有不是假的事件,也不是节日。这不是你问的吗?如果你保持原样,如果完整的话,你会得到一切不是节日的东西。 –

0

我建议你设置的事件模型,然后可以在拒绝块中使用的一些方法。

if @events.results.reject {|event| event.festival? && event.incomplete?}.any? 
    render 'events/results' 
else 
    render 'events/noresults' 
end 

的事件模型,你可以定义2种方法

def festival? 
    event_type == 'festival' 
end 

def incomplete? 
    !completed 
end 
相关问题