新手问题 请教一个问题用 Rails 做的新项目能不能接入获取到现有数据库的表?

knox · 2016年07月27日 · 最后由 knox 回复于 2016年08月04日 · 2219 次阅读

做前端多数是和靠 PHP 给我接口调用。如果我用 rails 能不能对接到现有数据库?这样小项目的话就不着 PHP 了,不然每次我前端做到需要数据的地方就要停滞,还要帮 PHP 测试接口搞到最后每次都是我比 PHP 晚开发完成😂 😂

#1 楼 @hz_qiuyuanxin 多谢我看下有点用,不过我还是想能否绕开 PHP,用 rails 或者 ruby 操作 mysql?

model里面自己初始化个连接就好了,不要被框架框死了

class OtherDBModel < ActiveRecord::Base
  establish_connection (
    :adapter  => "mysql2",
    :host     => "ip",
    :username => "name",
    :password => "passwd",
    :database => "dbname"
  )
end

根据你的问题我也研究了下,比如也可以同时维护两套migration,动动手指就可以搜索到一堆答案google(rails connect multiple database)

ActiveRecord 对于非 ID 主键的表的支持基本是残废,现在可能好一些了。 建议从 Roda+Sequel 开始,或者 Grape+Sequel,既然不需要渲染页面,而你又要用 Ruby https://github.com/jeremyevans/roda-sequel-stack

#3 楼 @zoker 多谢我去看下

#4 楼 @nouse 如果我通过 rails 链接现有数据库,那在构建前端项目的时候是不是可以配合 javascript 来完成前后统一呢?现在一般都是前端用 js 调用 PHP 写的接口获取数据然后再渲染页面

前端比后端后完成很正常,很多整合的效果或者 bug 只有在前端做出来后才看得出来。

嫌数据慢有很多种解决方法。比如你可以在本机自己开一个后端的临时 branch, 只要和后端约定好了接口名字和格式,你可以自己在接口里塞入假数据帮助开发。前端也有很多库是可以直接模拟数据的,你都可以考虑使用。全部开发完了你只需要简单更改接口调用到正式版就可以了。

不要想着另起炉灶,重新弄一个后端不是一个不熟悉后端的开发者在玩票级别的时间里面可以解决的。另外两套不同的应用使用同一数据库也不是不行,但里面很多具体的细节比如 transaction, migration 开发维护的成本都很高,我是觉得不值得,随便拼上去能用也只能是个玩具。

#7 楼 @billy 那如果后端不打算和你约定接口和参数格式呢?目前只打算在一些小项目中试试看这种方案可不可行。

不约定你就找老板投诉他 😄

开玩笑的,如果要并行开发,大多数情况下我觉得是可以约定的,这个在很短时间就可以决定,事先有计划也是良好的习惯。如果有实在困难或者后端变数比较多,可能团队也要接受前端需要晚半个或一个周期开发的现实。这样其实也挺好的,很多东西都确定下来了,效率也很高。

Get a full fake REST API with zero coding in less than 30 seconds → json-server

没有数据可以 mock api call,直接自己开艹这个太吊了点。管理流程稍微严格一点的话这些都是风险很大的事情。

哈哈 当然可以;我们现在就这样用 而且还支持 ar 的特性 joins includes 这些;可以跨库 join😁

#11 楼 @gyorou 可能是我没表达清楚,我是想能否实现通过 rails 做个对现有 database 的映射,通过 rails 来获取数据这样前后都是我来做

#9 楼 @billy 如果这能这样那就太美了,现实一般都是最大化压缩前端的开发进度来提高效率,容错率和质量都是前端的能力问题

需要 登录 后方可回复, 如果你还没有账号请 注册新账号