2013-09-27 49 views
0

我在尝试在控制器中将params条件放入时遇到了问题。此代码位于我的控制器内部:如何在条件控制器中添加条件?

if params[:example] == 1 
    @table = Model.find(:all,:conditions=>['column_table= ?',params[:example] ] ) 
else 
    @table = Model.find(:all,:conditions=>['column_table2= ?',params[:example] ] ) 
end 

此代码是否正确?我怎样才能在params控制器中添加一个条件?

+0

所有检查的首募PARAMS [:示例] .inspect – user2310209

+0

您遇到什么问题,显示错误.. – tihom

回答

2

你的代码看起来还好。不幸的是,你不会说你有什么问题。我看到的唯一可能失败的就是条件。如果你将一些价值传递给你的参数,他们不会被模拟。因此,我想你应该在你的条件下使用to_i

if params[:example].to_i == 1 
    ... 
+0

THanks spickermann它为我工作 –

1

尝试用

@table = Model.where((params[:example] == 1 ? 'column_table= ?' : 'column_table2 = ?'), params[:example]) unless params[:example].blank? 
1

这里是代码。你可以在一个变量中保存params [:example]并使用你的编码。

if params[:example].present? 
    @example = params[:example] 
    if @example == 1 
    @table = Model.find(:all,:conditions=>['column_table= ?',params[:example] ] ) 
    else 
    @table = Model.find(:all,:conditions=>['column_table2= ?',params[:example] ] ) 
end 
+0

感谢您的帮助! :) –

1

您还可以使用它的值一起发送列名,避免IFS

@table = Model.find(:all,:conditions=>["#{params[:col]} = ?", params[:example] ] ) 
+0

感谢是另一种帮助:) –