#54 楼 @seveniruby nginx 有漏洞也是有可能的,具体的要查看一下版本号,再检查一下它的日志。
另外,nginx 出问题可能性很小,极有可能是背后的进程有漏洞导致。
#9 楼 @yesmeck 刚看到,这个项目很像 Lina, 它自己定义了一套 DSL 来声明参数,思路蛮像。一个区别是,它的定位是 Rails API 生成工具,Lina 的定位是一个 API 框架。另外,实际上做一套完备的 JSON 声明是非常麻烦 ( 我看了下,它定义了众多的 DSL, 难于记忆 ), JSON Schema
已经发展到 v4 草案了。我相信用 JSON Schema
来实现还是非常有优势的:
谢谢你的介绍。
#1 楼 @flowerwrong 响应式好主意,收下此建议。你另说的模拟操作是指什么?
#xx.json.jbuilder
if @post.blank?
json.error 'not record yet'
else
json.extract! @post, :id, :name
end
#3 楼 @chanshunli 一个游戏角色名字,其实比较霸气的
一般直接用 rack-cors
即可。
:plus1: 在我刚毕业的时候读过这一篇,收获颇丰。
like this:
if ENV['RUBYTAOBAO']
#puts "use taobao source"
source 'http://ruby.taobao.org'
else
source 'https://rubygems.org'
end
开发环境在 .bashrc 弄一个环境变量:
RUBYTAOBAO=1
这个问题其实是等价于:
如何使用 Rails
提供 JSON API?
可以尝试以下方案:
grape
rails-api
rails + jbuilder
, 这个方案非常不错。lina
是我最近刚开发的一个 API 框架,几乎与 第 3 方案一致,还可以自动生成 API 文档。Both files, directoriess and glob patterns can be specified on the command line. Files will be added as-is. If a directory is specified, OCRA will include all files found below that directory. Glob patterns (See Dir.glob) can be used to specify a specific set of files, for example:
ocra script.rb assets/**/*.png
自己多看看它的文档,试试吧,问题解决最多给你一个思路。
#5 楼 @736248591 OCRA 编译说明有说明多文件会自动打包依赖:https://github.com/larsch/ocra#compilation
但我想,你应该这样:
设定一个统一的加载目录,例如:
在主文件中用:$LOAD_PATH.unshift( File.dirname(__FILE__) )
主文件中直接用相对目录 require
: require script/manager
over. 这样的话 OCRA 应该会自动帮你搞定依赖。
以下可能:
valid? 是 model
对象的方法,检查 model
是否满意 validates 约束。
nil? 是 ruby 原生方法,检查对象是否是 nil 对象。
@yz00 不要这么伸手党,这里的版规不允许这样。不要被封号了。
ps, 上传一个自己的头像先。
https://github.com/larsch/ocra/issues/29 有讨论一些办法:
ocra --no-autoload --add-all-core tkapp.rb c:\ruby193-p392\lib\tcltk
#4 楼 @736248591 这个不太清楚。
理论上 ocra 会自行改写这个 shebang
@xiaoyaotian Rails 是非常适合快速开发轻量级 API 的,有几种标准的办法:
原生 + jbuilder
直接用原生的 controller, view 层可以直接用 jbuilder 来取代 erb.
复用时可以像 partial 那样使用,详情可见 jbuilder github 项目。
我比较喜欢这种,但这个方式缺少一些基本的 API 需求:比如版本号管理,API 文档。
grape
intridea 出品,可以很容易写 API. 与 Rails 整合也非常简单。很全面,但学习曲线较 Rails 高一些,很多内容还有有一些坑在里在。
Rails-API
另一个编写 RestAPI 的库,介绍了开发过程的方方面面。
如果你这样执行脚本则有用:
chmod +x test.rb
./test.rb
#! 后面的 path 被用来查找对应的解释器。
如果是
ruby test.rb
#! 就会当作注释忽略掉。
@yz00 你之前用 root 用户安装的,现在切成普通用户,创建的目录没有权限。
建议重新开始:
切到 root:
rm -rf home/yz00/.rvm
切到 yz00 用户,重新安装 rvm 及 ruby.
ruby
没有安装好,缺少了 openssl 库。
建议,先用 rvm
或者 rbenv
安装 ruby.
再安装 rails
ps: 不要用 root 用户啊。
楼主的解决问题能力非常强。
对于邮件的 HTML, 只是内联样式,还有许多样式并不支持。
Rails4.1 很给力,写 mailer 已经很方便了。
可以 goolge 下 : rails engine
不错的解决手段。
有点觉得 Update 解决的不太优雅。
#3 楼 @gerry1004 那个库有 bug, 试试这个:
gem 'rqrcode-with-patches', require: 'rqrcode'
完整代码示例:
class QrcodesController < ApplicationController
def show
str = params[:str].to_s
max_length = 200
if str.length > max_length
render nothing: true, status: 404
return
end
require 'rqrcode/export/png'
qr = RQRCode::QRCode.new(str)
response.headers['Cache-Control'] = "public, max-age=#{12.hours.to_i}"
response.headers['Content-Type'] = 'image/png'
response.headers['Content-Disposition'] = 'inline'
render :text => qr.as_png
end
end
代码从开源项目 wblog 取出。
def getgood
good = TaoBaoApi::Good.new params[:buy_link]
item = good.get_info
# 只有 json 的数据 前端才能到回调里
render :json => { :find => "NO",:data =>item}
end
如果你用的是 Ruby2.0 以上,可以尝试手动改一下字串的计算方式如下:
str = '中文'
str.length
# result is 2
str.encode('gbk').force_encoding('ascii').length
# result is 4
查看源代码嘛。JS 里直接写好了分数。