小编Mic*_*cah的帖子

有没有办法在MySQL/Rails中为单个查找强制区分大小写?

我正在搜索一些标签,有些用户喜欢"猫",而其他用户喜欢"猫"Go图...

无论如何,有没有办法强制特定的查找区分大小写?如:

Tag.find(:some-special-option-here)
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

mysql ruby-on-rails case-sensitive

8
推荐指数
1
解决办法
5656
查看次数

Rails,MySQL,Unicode数据和latin1表 - 从这里开始?

我对这些细节并不是百分之百确定,所以我希望有人能把我拉直,但我会继续我的想法......

当我第一次设置我的数据库时,我甚至没有考虑使用系统的默认字符编码,而是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连接?),以及有关如何继续的任何提示.

mysql ruby-on-rails utf-8 character-encoding

8
推荐指数
1
解决办法
2490
查看次数

如何在路由器之前添加插件Elixir/Phoenix?

有没有办法在路由器选择控制器/动作之前插入一个Plug来运行?我有一个应用程序将重定向到特定子域的根路径,无论这些域上的当前路径如何.所以:

sub.myapp.com/foo/bar 应该重定向到 sub.myapp.com/

但是,默认情况下,路由器说没有路径/foo/bar,它会停止执行我的插件,这意味着它永远不会达到我的重定向.

有没有办法在路由器选择动作/控制器之前插入我的插头?

(注意:我很确定我能用一条全能的路线处理这个案例,但我只是好奇是否有更好的方法.)

elixir phoenix-framework

8
推荐指数
1
解决办法
743
查看次数

验证用户的API凭据-Rails,ActiveMerchant和PayPal Express Gateway

我正在构建一个使用PayPal Express的市场应用程序。我有一个表格供卖家输入他们的PayPal API凭证,但是我需要一种通过对PayPal进行某种调用来验证它们的方法。

我在ActiveMerchant中使用PaypalExpressGateway,除了标准的购买控件外,我看不到其他任何东西。是否可以使用任何一种空操作?

任何帮助将不胜感激!

paypal ruby-on-rails activemerchant e-commerce

5
推荐指数
1
解决办法
2230
查看次数

从2.3.11升级到Ruby on Rails 3.0,3.1或3.2?

我正准备(尝试)将Rails应用程序从2.3.11升级到3.X,我想知道其他人推荐的升级路径.现在(2012年3月),3.2是最新的Rails版本,但我想知道我是否更适合定位早期版本以最小化升级痛苦.

特别是,我希望避免在弃用和遗留支持上过度评价.例如,如果遗留的ActiveRecord部分在3.1中已弃用并在3.2中删除,那么我认为我宁愿选择3.1甚至3.0.

目前的配置:

  • Rails 2.3.11
  • Ruby 1.8.7(ree-1.8.7-2012.01 in production)
  • 已经升级到捆绑包

如果有人经历过这个并且可以指向特定版本的目标,那将是一个很大的帮助.

ruby-on-rails ruby-on-rails-3

5
推荐指数
1
解决办法
703
查看次数

访问has_many关系时指定订单和限制的快捷方式?

在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个帖子?

activerecord ruby-on-rails

3
推荐指数
1
解决办法
835
查看次数

Rails RESTful API +支持只允许GET/POST的客户端 - 是否可能?

我正在为我的Rails应用程序发布一个API,我正在尝试尽可能地保持良好和RESTful,同时保持现实.我知道Flash和其他一些客户在GET和POST之外的任何事情都有问题,但是我仍然希望为那些具有表现力的客户提供更多的RESTful接口.

在我看来,最佳解决方案是设置正常的Rails RESTful路由,但也允许一个可选的查询字符串参数,如方法,允许客户端使用POST但模仿另一个动词.

有没有(简单)方法使用Rails路由执行此操作?其他人做类似的事情?

api rest ruby-on-rails

2
推荐指数
1
解决办法
389
查看次数