我正在使用Rails API构建一个简单的api ,并希望确保我在这里正确的轨道.我正在使用设计来处理登录,并决定使用Devise的token_authenticatable选项,它会生成一个API密钥,您需要随每个请求一起发送.
我将API与骨干/牵线木偶前端配对,我一般想知道如何处理会话.我的第一个想法是将api密钥存储在本地存储或cookie中,并在页面加载时检索它,但是从安全的角度来看存储api密钥的方式让我感到困扰.通过查看本地存储/ cookie或嗅探任何经过的请求来获取api密钥并不容易,并使用它来无限期地冒充该用户?我目前正在每次登录时重置api密钥,但即使这样也很频繁 - 任何时候你登录任何设备,这意味着你会被其他人登录,这是一种痛苦.如果我可以放弃这种重置,我觉得从可用性的角度来看它会有所改善.
我可能在这里完全错了(并且希望我是),任何人都可以解释这种方式的认证是否可靠安全,如果不是,那么一个好的替代方案是什么?总的来说,我正在寻找一种方法,我可以安全地保持用户'登录'到API访问,而不经常强制重新认证.
这是一个非常奇怪的问题.我有一个rails应用程序,其中我使用UJS替换页面上的一个部分.最近,它停止工作,所以我开始记录整个过程,看看它在哪里破了.这是我发现的:
这意味着它将一直运行.js.erb文件并评估ruby没有错误.但这有点奇怪 - 没有任何javascript正在执行.当我在.js.erb文件中运行警报('hello?')时,它没有执行.
有没有人遇到过这个问题?它会运行erb评估而不是js,这似乎非常奇怪.并且js控制台中也没有出现错误.
我有记录:清除缓存,重新启动浏览器,重新启动rails应用程序,没有任何改变.
示例代码:
# view
link_to 'example', some_path, :remote => true
# controller
respond_to do |format|
format.js
end
# .js.erb file
alert('this never shows up');
<% puts 'this shows up in the rails console' %>
Run Code Online (Sandbox Code Playgroud)
非常感谢任何能够对这个奇怪的问题有所了解的人!
我几天来一直在努力解决这个问题,但我无法想出一个优雅的方法来处理它.这是问题所在.
我正在运行forEach循环,我需要知道什么时候一切都已完成.由于forEach循环是阻塞的,因此只需console.log在forEach循环之后删除a 就足够了,这将在forEach循环完成时运行.但是,如果forEach循环内部有任何不同步的函数,整个系统会很快崩溃,除了非常奇怪的hacky计数器和if语句之外,我无法知道循环内容何时完成.我的问题是在javascript中是否有一种优雅的方式来处理这种情况.
以下是几个例子:
在这种情况下,forEach循环可以很好地工作,因为循环中的所有内容都是同步的.
[1,2,3].forEach(function(num){
console.log("we're on " + num);
});
console.log('done counting!')
//=> we're on 1
//=> we're on 2
//=> we're on 3
//=> done counting!
Run Code Online (Sandbox Code Playgroud)
这是我们开始遇到问题的地方,作为一个基本的例子:
[1,2,3].forEach(function(num){
setTimeout(function(){ console.log(num) }, 200);
});
console.log('done counting!');
//=> done counting!
//=> we're on 1
//=> we're on 2
//=> we're on 3
Run Code Online (Sandbox Code Playgroud)
虽然这确实发生了这种情况,但我现在手上有一个不幸的问题,我需要回调一下,当我们完成计数时,除了这样的事情之外我没有其他方法可以做到:
var counter = 0;
var numbers = [1,2,3]
var log_number = function(num){
console.log("we're on " + num);
counter++;
if (counter == numbers.length) …Run Code Online (Sandbox Code Playgroud) 我迫切需要任何慈善的红宝石/铁路专家的帮助.我真的想学习RoR,但是我无法到达任何地方,因为每次我到达需要连接到数据库的阶段时,都会出现问题.这就是我现在要做的事情.
[Mac OSX 10.6.6 - Ruby 1.9.2 - Rails 3.0.5 - MySQL 5.5.10]
所有这些都是最新版本,新安装,运行顺畅.我也安装了rvm.我想知道的是如何使用MySQL数据库建立一个新的Rails项目并正确连接到它.我花了无数个小时谷歌搜索并在错误后出错后收到错误.
任何人都可以通过逐步概述如何让一个工作的rails项目连接到mysql数据库来帮助我吗?如果有人可以帮助我,我将不仅仅欠你一生,而且我会为你免费制作精彩的网页和界面设计和/或作为UI设计师合作你的下一个项目.我还将为您提供免费的photoshop /图形建议.
我想学习如此糟糕的rails,但我现在正处于这个文件配置的东西,并浪费了大量的时间.请帮忙!
我正在尝试使用 zlib 来压缩一些冗长的字符串,其中一些可能包含 unicode 字符。目前,我正在用 ruby 做这件事,但我认为这真的适用于任何语言。这是超级基本的实现:
require 'zlib'
example = "“hello world”" # note the unicode quotes
compressed = Zlib.deflate(example)
puts Zlib.inflate(compressed)
Run Code Online (Sandbox Code Playgroud)
这里的问题是文本是这样出现的:
\xE2\x80\x9Chello world\xE2\x80\x9
Run Code Online (Sandbox Code Playgroud)
...没有unicode引号,只有奇怪的无法识别的字符。有谁知道可以在保留 unicode 字符的同时使用 Zlib 的方法?红宝石答案的奖励积分:)
我已经看到了这个问题,并回答了javascript正则表达式,答案很长很难看.好奇,如果有人有更清洁的方式在ruby中实现.
这是我想要实现的目标:
测试字符串:正则 "foo bar baz"
表达式: /.*(foo).*(bar).*/
预期回报: [[0,2],[4,6]]
所以我的目标是能够运行一个方法,传入测试字符串和正则表达式,它将返回每个捕获组匹配的索引.我在预期回报中包含了捕获组的起始和结束索引.我将继续努力,并在此过程中添加我自己的潜在解决方案.当然,如果除了正则表达式之外还有一种更清洁/更容易实现的方法,那也是一个很好的答案.
您可以使用精彩的Cocoa应用程序运行脚本NSTask,并且效果很好.唯一的问题是我需要运行多个脚本,并且在我的应用程序中,脚本不能组合成一个文件或一个调用 - 它们必须由应用程序作为单独的任务运行.
问题是显然你只能NSTask在一个应用程序中运行一个.我不明白为什么会这样,但遗憾的是,似乎是这样.我已经尝试了一切来调试它,但无论脚本是什么,多么简单或多么复杂,我的应用程序只会执行NSTask我运行的第一个.之前出现过这个问题,虽然不那么直接,但似乎没有解决方案.
必须有一种方法可以在应用程序中运行多个脚本.有没有人知道我可以解决这个问题,或者可能是另一种运行脚本的方法?我需要做的就是运行一个非常短的bash脚本来执行"make install".
这是一个如何运行NSTask的示例,以防它有用.
NSTask *task;
task = [NSTask launchedTaskWithLaunchPath: @"/bin/bash"
arguments:[NSArray arrayWithObjects: scriptPath, nil]
];
Run Code Online (Sandbox Code Playgroud)
它确实适用于我的所有脚本,它只是不能运行一个然后另一个.