radrails中使用存储过程??

radrails中使用存储过程??

1.能否使用存储过程?
2.如果能,怎样使用?
3.给个简单的例子 说明下!
1.可以使用
2.使用方法:ActiveRecord::Base.connection.execute("call mysql.sp1()")
                                   数据库 存储过程名
3 .sp1:
DELIMITER $$
DROP PROCEDURE IF EXISTS `mysql`.`nihao` $$
CREATE PROCEDURE `mysql`.`nihao` ()
BEGIN
SELECT * from mails;
END $$
DELIMITER ;
怎么获取返回值?
@store = ActiveRecord::Base.connection.execute("call mysql.nihao()")
Mysql::Error: PROCEDURE mysql.nihao can't return a result set in the given context: call mysql.nihao()

mysql中的函数可以有返回值
@store1 = ActiveRecord::Base.connection.execute("selectmysql.f()")
DELIMITER $$
DROP FUNCTION IF EXISTS `skmaildb`.`ff` $$
CREATE DEFINER=`test1project`@`localhost` FUNCTION `ff`() RETURNS int(11)
BEGIN
 return 1;
END $$
DELIMITER ;

但是结果 @store1= “#”(显示结果) #<Mysql::Result:0x5157aac>(真实结果)
请问只能返回function的结果吗,怎么得到真实结果?sp的怎么返回
我觉得调用execute方法不是太好。
不过我也还不知道其它的方法,
不知有谁还有新意的没有
execute方法不好是因为....?
ruby 处理存储过程的例子太少了
基本上都用rails中的方法!