我正在搜索一些标签,有些用户喜欢"猫",而其他用户喜欢"猫"Go图...
无论如何,有没有办法强制特定的查找区分大小写?如:
Tag.find(:some-special-option-here)
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我对这些细节并不是百分之百确定,所以我希望有人能把我拉直,但我会继续我的想法......
当我第一次设置我的数据库时,我甚至没有考虑使用系统的默认字符编码,而是latin1.我从没想过i18n/l10n.它只是没有发生在我身上.我刚刚接受了默认设置并继续使用它.
无论如何,我一直专门为Rails应用程序使用数据库,现在我们已经获得了几GB的数据,100,000行和许多国际用户.我注意到我们的许多外国用户正在插入似乎是Unicode /非latin1的数据.这是一个例子:
疯狂的Unicode东西怎么样?☢☠☭
database.yml的
这是我们的database.yml文件.
development:
adapter: mysql
database: XXX
username: YYY
password: ZZZ
host: localhost
encoding: utf8
Run Code Online (Sandbox Code Playgroud)
如您所见,我们将字符编码设置为utf8.但是,我们所有的表都有一个默认的字符集latin1.我很确定这一点.
更新仔细观察后,我们的生产database.yml没有指定编码,而我的本地副本指定了utf8.当我转储生产数据库并在本地导入时,这会导致问题.现在似乎导入工作正常,但Rails正在错误地读取它.
mysql CLI工具
当我通过mysql CLI工具查看数据时,它会正确显示所有Unicode字符.但是,'show create table'语句清楚地表明这些表是默认的charset latin1.这让我相信MySQL在某种程度上足够聪明,可以存储非latin1数据.
HTTP标头
我们的HTTP Content-Type标头设置为utf-8,如下所示:
Content-Type: text/html; charset=utf-8
Run Code Online (Sandbox Code Playgroud)
转换尝试
我在将表格转换为utf-8编码时玩了一点,但都没有成功.主要是我尝试转储数据库,运行iconv进行转换,然后使用设置为utf-8的表重新导入.MySQL没有错误,但所有的Unicode数据都是乱码.
该怎么办?
我有点担心做什么(如果有的话).我坚信不修复没有破坏的东西,但这种情况让我很担心.我们从来没有收到用户关于无法存储数据的任何投诉,而且一切似乎都运行正常.我只想知道到底发生了什么,转换的是谁/什么(MySQL?Ruby?Rails?MySQL连接?),以及有关如何继续的任何提示.
有没有办法在路由器选择控制器/动作之前插入一个Plug来运行?我有一个应用程序将重定向到特定子域的根路径,无论这些域上的当前路径如何.所以:
sub.myapp.com/foo/bar 应该重定向到 sub.myapp.com/
但是,默认情况下,路由器说没有路径/foo/bar,它会停止执行我的插件,这意味着它永远不会达到我的重定向.
有没有办法在路由器选择动作/控制器之前插入我的插头?
(注意:我很确定我能用一条全能的路线处理这个案例,但我只是好奇是否有更好的方法.)
我正在构建一个使用PayPal Express的市场应用程序。我有一个表格供卖家输入他们的PayPal API凭证,但是我需要一种通过对PayPal进行某种调用来验证它们的方法。
我在ActiveMerchant中使用PaypalExpressGateway,除了标准的购买控件外,我看不到其他任何东西。是否可以使用任何一种空操作?
任何帮助将不胜感激!
我正准备(尝试)将Rails应用程序从2.3.11升级到3.X,我想知道其他人推荐的升级路径.现在(2012年3月),3.2是最新的Rails版本,但我想知道我是否更适合定位早期版本以最小化升级痛苦.
特别是,我希望避免在弃用和遗留支持上过度评价.例如,如果遗留的ActiveRecord部分在3.1中已弃用并在3.2中删除,那么我认为我宁愿选择3.1甚至3.0.
目前的配置:
如果有人经历过这个并且可以指向特定版本的目标,那将是一个很大的帮助.
在ActiveRecord模型中访问has_many关系时是否有提供限制和顺序的快捷方式?
例如,这是我想表达的内容:
@user.posts(:limit => 5, :order => "title")
Run Code Online (Sandbox Code Playgroud)
与较长版本相反:
Post.find(:all, :limit => 5, :order => "title", :conditions => ['user_id = ?', @user.id])
Run Code Online (Sandbox Code Playgroud)
我知道你可以直接在has_many关系中指定它,但有没有办法在运行中做到这一点,例如在一个页面上显示10个帖子,但在另一个页面上只显示3个帖子?
我正在为我的Rails应用程序发布一个API,我正在尝试尽可能地保持良好和RESTful,同时保持现实.我知道Flash和其他一些客户在GET和POST之外的任何事情都有问题,但是我仍然希望为那些具有表现力的客户提供更多的RESTful接口.
在我看来,最佳解决方案是设置正常的Rails RESTful路由,但也允许一个可选的查询字符串参数,如方法,允许客户端使用POST但模仿另一个动词.
有没有(简单)方法使用Rails路由执行此操作?其他人做类似的事情?