我在Ruby on Rails中使用IF语句来尝试测试是否设置了请求参数.无论是否设置了两个参数,以下if块的第一部分都会被触发.如果设置了params [:one]和params [:two],我该如何才能触发此部分?
if (defined? params[:one]) && (defined? params[:two])
... do something ...
elsif (defined? params[:one])
... do something ...
end
Run Code Online (Sandbox Code Playgroud) 我试图在rails应用程序中使用before_save条件,但它似乎没有工作.
before_save method_call_to_run if self.related_model.some_method_that_returns_t_or_f?
Run Code Online (Sandbox Code Playgroud)
如果'some_method_that_returns_t_or_f'返回true,我希望它在保存对象之前运行该方法,否则我只是想让它忽略before_save.
我正在返回从ORM中提取的对象数组的json_encode().它包含许多具有空值的属性.删除这些null属性的最佳方法是什么?我想我可以迭代属性,看看它们是否为null然后取消设置()该属性,但肯定必须有更优雅的方式?
我有一个SQL查询,它查看出生日期,姓氏和名字的soundex来识别重复项.以下查询查找大约8,000行(我假设这意味着大约有8,000个重复记录).
select dob,last_name,soundex(first_name),count(*)
from clients
group by dob,last_name,soundex(first_name)
having count(*) >1
Run Code Online (Sandbox Code Playgroud)
几乎所有的结果都有2的计数,有几个计数为3,显然,在合并的两个数据库之一中,记录存在两次.
我需要采取的下一步是使用重复标记标记其中一行,并不重要,并用相反的行键标记每一行.有没有办法使用SQL执行此操作?
我试图设置我自己的方法来覆盖数据库属性,以便我可以拦截数据库值为null的值.
Rails似乎允许我设置一个与数据库列同名的方法,但是我需要一种替代方法来访问数据库值以返回我想要的内容.
想象一下,我有一个数据库列"date",我想在数据库中为null时将其设置为其他内容.
我想设置一个方法如下
def date
if (alternative_db_value_object).date == nil
"Put this"
else
"Put that"
end
end
Run Code Online (Sandbox Code Playgroud)
或者,如果有人能提出更好的方法,我会非常感激.
我正在尝试编写一个查询,我可以每3个月在数据库的事务表中计算不同的user_id.
如果我执行以下操作,我可以手动完成结果
SELECT COUNT(DISTINCT(user_id)) FROM transactions WHERE DATE(created_at) BETWEEN "2011-01-01" AND "2011-03-31".
Run Code Online (Sandbox Code Playgroud)
但是,如果我想在多年的季度时间内自动运行,那将需要永远.
有没有办法在一个查询中包装这类东西?