小编use*_*065的帖子

RAILS/DEVISE - 设置一个设计cookie,以便在不同的子域中保持不变

我使用设计进行身份验证,并希望以下工作:

  1. 用户登录[ http://mydomain.com].
  2. 用户通过[ https://secure.mydomain.com]付款
  3. 用户返回[ http://mydomain.com/action]继续使用系统

我正在关注本教程:http://clearcove.ca/blog/2010/11/how-to-secure-a-rails-app-on-heroku-with-ssl-firesheep/

但我正处于需要让Devise做authlogic在这里做的部分.救命!!;)

ruby-on-rails devise

9
推荐指数
2
解决办法
5623
查看次数

使用 group by 的 sql 查询适用于 SQLite 而不适用于 postgresql

以下查询适用于本地但不适用于生产:(生产是 heroku 正在运行 postgreSQL,而在本地我正在运行 sqllite 数据库)

红宝石

Tutor.joins(:expertises).where(:expertises => {:subject_id => [2,4]}).group("tutors.id").having("COUNT(*) = 2")
Run Code Online (Sandbox Code Playgroud)

SQL

SELECT "tutors".* FROM "tutors" INNER JOIN "expertises" ON "expertises"."tutor_id" = "tutors"."id" WHERE ("expertises"."subject_id" IN (9)) GROUP BY tutors.id HAVING COUNT(*) = 1 ORDER BY rank DESC)
Run Code Online (Sandbox Code Playgroud)

我在生产 ActiveRecord::StatementInvalid (PGError: ERROR: column "tutors.fname" must出现在 GROUP BY 子句中或在聚合函数中使用时收到以下错误

我的表中有以下值

id                 :integer         not null, primary key
fname              :string(255)
lname              :string(255)
school             :string(255)
major              :string(255)
year               :string(255)
bio                :text
vid                :string(255)
price              :integer
phone              :string(255)
skype              :string(255)
address            :text …
Run Code Online (Sandbox Code Playgroud)

sqlite postgresql ruby-on-rails

5
推荐指数
2
解决办法
1246
查看次数

图像上传失败w/nodejs表达

我正在尝试使用Node w/express上传图像,我收到以下错误.我在这方面看到了一些问题,指出异步数据库调用是导致问题的原因.我想在理论上使用bodyParser,bodyParser应该只是通过我连接然后强大,所以我更喜欢不禁用bodyParser的解决方案.

就我而言,我没有进行数据库调用 - 我的所有代码都在下面复制.任何人都可以放弃的任何亮点都将非常感激.

500错误:分析器错误,在IncomingForm.write(/Users/me/Projects/Project/node_modules/express/node_modules/connect/node_modules/formidable/lib/incoming_form.js:145:17)在IncomingMessage解析44个字节40.(/Users/me/Projects/Project/node_modules/express/node_modules/connect/node_modules/formidable/lib/incoming_form.js:95:12)在IncomingMessage.emit(events.js:64:17)在HTTPParser.onBody( http.js:121:23)在Socket.ondata(http.js:1026:22)在Socket._onReadable(net.js:683:在IOWatcher.onReadable 27)作为回调(net.js:177:10 )

这是我的app.js文件(咖啡脚本):

express = require('express')
routes = require('./routes')
app = module.exports = express.createServer()

app.configure(() ->
  app.set('views', __dirname + '/views')
  app.set('view engine', 'jade')
  app.use(express.bodyParser({
    uploadDir: '/tmp/upload'
  }))
  app.use(express.methodOverride())
  app.use(express.cookieParser())
  app.use(app.router)
  app.use(express.static(__dirname + '/public'))
)

app.configure('development', () ->
  app.use(express.logger())
  app.use(express.errorHandler({ dumpExceptions: true, showStack: true }))
)

app.configure('test', () ->
  app.use(express.logger())
  app.use(express.errorHandler({ dumpExceptions: true, showStack: true }))
)

app.configure('production', () ->
  app.use(express.logger())
  app.use(express.errorHandler())
)

app.get('/images/new', (req, res) ->
    console.log("getting image form")
    res.render('forms/image_upload', {title: 'Images'})
) …
Run Code Online (Sandbox Code Playgroud)

node.js express

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

Rails远程表单回调ajax:加载不会触发,其他人则执行

这是我的代码:

$('#fb_login_form').bind('ajax:loading', function() {alert("loading!");});
.bind('ajax:success', function(data, status, xhr) {alert("success!");})
.bind('ajax:failure', function(xhr, status, error) {alert("failure!");})
.bind('ajax:complete', function() {alert("complete!");});
Run Code Online (Sandbox Code Playgroud)

ajax:successajax:complete火,我看到两个警报.ajax:loading才不是.

我使用的是jQuery而不是原型.为什么?

ajax jquery ruby-on-rails

4
推荐指数
2
解决办法
5953
查看次数

我该如何看待搜索引擎指数?

我正在使用弹性搜索,并不完全了解索引是什么.例如,如果我有3个模型(背包,鞋子和手套),我是否将每个模型放在自己的索引中,或者我是否对每个模型的属性进行索引:即我为鞋子的鞋带,鞋底等编制索引?

我试图了解搜索索引是否很慢.例如,如果我索引我的模型的每个属性,并且我说,20个索引,当我运行需要查看所有索引中的数据的搜索时,这比具有单个索引并查看存储的20个属性更慢在那个指数?

indexing search information-retrieval elasticsearch

4
推荐指数
1
解决办法
398
查看次数

通过rails上的表单防止链接垃圾邮件

我们的rails应用程序允许未登录的用户创建消息对象的消息注册用户,将其存储在我们的数据库中,然后将内容通过电子邮件发送给注册用户.在我们的暂存应用程序中,我们已经开始从抓取我们网站的机器人收到大量垃圾邮件.我们担心两件事:

  1. 给用户带来的不便
  2. SQL注入或我们没有考虑的任何其他安全漏洞可能会在此上下文中发生

有什么好方法可以解决这个问题?我知道我们可以实现验证码系统,但从用户体验的角度来看这并不理想.我们还可以阻止中国(或者攻击源自哪里)的地方的IP,但我们也可能希望为中国的用户提供服务.

此外,我相信rails具有内置功能来清理查询字符串并防止SQL注入,但默认情况下是否启用?在这种情况下,我们是否应该关注防止导轨默认不处理的其他事情?

有什么建议?

security ruby-on-rails

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

Heroku SSL错误:密钥与PEM证书不匹配

我正在尝试使用Heroku在此建议的说明生成自签名证书:http://www.akadia.com/services/ssh_test_certificate.html

这将创建sever.key和server.crt.

然后我尝试使用以下命令将它们添加到heroku:

heroku ssl:添加server.crt server.key,我收到以下错误

找不到域名.确保将mycorrectdomain.heroku.com域添加到您的Heroku app/Key与PEM证书不匹配

这是server.crt文件的内容:

-----BEGIN CERTIFICATE-----
MIICvTCCAiYCCQDyHGnBdtovbzANBgkqhkiG9w0BAQUFADCBojELMAkGA1UEBhMC
VVMxCzAJBgNVBAgMAkNBMRIwEAYDVQQHDAlQYWxvIEFsdG8xEzARBgNVBAoMClR1
dG9yQ2xvdWQxETAPBgNVBAsMCFNvZnR3YXJlMSMwIQYDVQQDDBp0ZXN0LXR1dG9y
Y2xvdWQuaGVyb2t1LmNvbTElMCMGCSqGSIb3DQEJARYWYmxhaXJAbXl0dXRvcmNs
b3VkLmNvbTAeFw0xMTA4MDMxNzQ4NDdaFw0xMjA4MDIxNzQ4NDdaMIGiMQswCQYD
VQQGEwJVUzELMAkGA1UECAwCQ0ExEjAQBgNVBAcMCVBhbG8gQWx0bzETMBEGA1UE
CgwKVHV0b3JDbG91ZDERMA8GA1UECwwIU29mdHdhcmUxIzAhBgNVBAMMGnRlc3Qt
dHV0b3JjbG91ZC5oZXJva3UuY29tMSUwIwYJKoZIhvcNAQkBFhZibGFpckBteXR1
dG9yY2xvdWQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqWEjXRDo0
CBzoIqnpzPN6Ussf476JDX+9uCkpaSyR6Oxarjpc55lw+Mnb9UNiBWPS6JJ/Hq2c
CgkGD9uu11OXRCRvsZeyJjd2YT1B+XZsXrKZVj2C2dj1r6DXzAV2G5EwWJDklaH3
x1uA+muPt7NZ4Dz2WNv9FMyicTTCdMhWlwIDAQABMA0GCSqGSIb3DQEBBQUAA4GB
AJYAgjiHyUxyeFRR2nJ3CLanjNtkzVz+Dk7pdu/p0P35YpYhE95q76xgcOFasWe2
+pUwxTjtQvhc0BRHjohSjiF8+ZFLRfsPq9kmh55AFzDj7V8dzUek4yVyZRtcIdNQ
Gx8I5g8vJClLnHbYQlaCupVIxVZqnp7SKeeshduCsJ/8
-----END CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

ssl heroku

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

使用回调组织Javascript

我试图找出在我的网站上组织一堆AJAX方法的最佳方法.问题是我希望在收到每个回调后运行一堆回调.这是一个例子(假设每个方法异步运行):

Log_in_user
    if response received and call was successful
        get_user's_data
            if response received and call was successful
                alert user
Run Code Online (Sandbox Code Playgroud)

希望现在问题很明显.因为每个方法都是异步运行的,所以代码不会按顺序运行.相反,我希望传递下一个函数作为回调运行在运行它的函数之后运行,我将不得不将越来越多的回调传递给第一个函数,这取决于我希望在每个函数之后发生多少事情.异步方法返回.例如,在这种情况下,我将不得不将两个回调传递给Log_in_user函数Log_in_user(get_user's_data,alert_user).我在彼此之后运行的回调越多,我将需要传递给原始Log_in_user函数的回调越多.

是否有更模块化和更有条理的方式来做到这一点?

javascript jquery

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

我想制作一个rails模型,但我不想将它存储在数据库中

我想制作一个能处理所有与facebook相关的问题的对象.例如,我想说object.is_access_token_valid?或object.get_user_email或object.authenticate_user.我想在这个对象中打包很多复杂的功能,我想从对象的用户那里抽象出来.在java中,这将是一个对象.什么会在红宝石/铁轨?

这是我的具体情况:

我收到此错误:ActiveRecord :: StatementInvalid:找不到表

这是我的代码:

class FacebookSession < ActiveRecord::Base

#include OauthHelper

  attr_accessor :fb_token, :fb_client, :fb_user_id, :fb_email

  def initialize
    @fb_client = client # makes new oauth client
    @fb_token = OAuth2::AccessToken.new client, fb_token
  end

  def get_email
    self.fb_token.get('/me/interests')
  end

  def get_fb_user_id
    self.fb_token.get('/me/interests')
  end

  def authenticate
    #if this fb_user_id is in the database, log them in otherwise don't
  end

  def is_valid?
    if(try_access_token(self.access_token))
      return true
    else
      return false
    end
  end

end
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

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

Heroku:将生产数据库拉到测试并运行rake db:migrate时的迁移​​问题

我在heroku上有3个我的rails应用程序实例(测试,舞台和制作).当我想测试真实用户数据发生的问题时,我想使用heroku db:pull --app production,然后是heroku db:push --app test.问题是,此时heroku rake db:migrate --app test会抛出一个错误,因为已经创建了迁移尝试创建的列.

我的理解是heroku db:push将数据推送到现有的数据库模式,而不是逐字推送整个数据库(包括模式).这意味着我们推送的模式可能比我们推送的迁移表更高级,因为此迁移表将丢失尚未在我们从中提取的数据库上运行的迁移记录,但显然已在我们推送到的数据库上运行.

我的第一个问题是,我是否理解这是如何工作的?我的第二个问题是如何解决这个问题,以便我可以提取生产数据,坚持测试并运行迁移而不会收到此错误.理想情况下,我想复制生产数据库并将其粘贴在测试中,然后完全迁移它,因为如果我能做到这一点,我就不必担心测试中的现有模式.有没有办法做到这一点?

如果没有,是否有办法通过使用已在我的测试数据库上运行的每个迁移的记录填充新的迁移表来伪造已经运行的迁移?

activerecord heroku

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