join 条件动态变化的话,eager_load 应该做不到
假设你的 ActiveRecord 是这样的:
class User < ActiveRecord::Base
has_one :group
end
class Group< ActiveRecord::Base
belongs_to :user
end
现在可以这么写:
class User < ActiveRecord::Base
has_one :group, proc{Group.type_xxx}
end
class Group< ActiveRecord::Base
belongs_to :user
scope :type_xxx, proc{where "group.type = 'XXX'"}
end
现在User.eager_load(:group)
,会实现楼主想要的效果,把 Group scope 里的 where 条件在 left outer join 的时候加到 on 条件里
不过注意scope :type_xxx, proc{where "group.type = 'XXX'"}
where 里面的 group 实际应该为 Group 数据库的表名
可以把数据库 schema_migrations 表的数据与你 migration 的版本做一下比较,看看数据库现在是哪个版本。
其次,确认是否有其他人也使用了这个库,并创建了相关字段。
最后,RAILS_ENV=production bundle exec rake db:drop
会将所有生产环境数据清除,确定要这么做的话,可以根据如下 SQL(注意替换 database_name)
SELECT
*, pg_terminate_backend(pid)
FROM
pg_stat_activity
WHERE
pid <> pg_backend_pid()
AND datname = 'database_name'
;
查出当前 pg 数据库的连接,手动 kill 相关 pid,即可 db drop。
是根据 user 查 product,不是根据 product 查 user
那其实是先根据区分度较低的字段来查,效率反而会高一些?学习了
https://ruby-china.org/topics/36949
曾经遇到过,通过 nginx 反代后解决了,不清楚原理
但是我当时是外网直接访问的 puma,跟楼主 localhost 访问的不太一样
不过好像大家更喜欢把 GraphQL 称作 REST 2.0
感觉都是 Rails(Grape),用 GraphQL 好像不多啊
大会开始一个星期前,大会开始前一个星期。
我在stackoverflow找到了楼主的问题,建议楼主看看,应该可以解决你的问题
我跟着这本书走了几遍,Ruby on Rails 教程rails 5 版本,完全没有问题,楼主的版本可能旧了点。
error message: undefined local variable or method 'static_pages_about_url'
your code:
test 'should get nothing' do
get static_pages_about_url
assert_response :success
end
在代码里没有 static_pages_about_ur 这个局部变量,说明 config/route.rb 忘记加了这个路由,把 about 加到和你之前 static_page 下 home,help 一样的位置就好了
存的时候,存一份用户输入的文本,再存一份转化为简体的文本。搜索的时候,把用户输入的文字直接转化为简体,去搜索转为简体的文本。
重装 bundle?
还真是,不知道什么时候的误操作,我也没想着登出看看...
我也是新手,互相学习。
while 'e' != url = gets.chomp!
print_title url
end
url 需要你自己输入
输入 e 是退出,没问题吧
Please input url, and enter "e" to exit.
那是两个 gem 包,你在 shell 下安装对应的 gem 包
$ gem install nokogiri
$ gem install rest-client
在 ruby 里 require 对应的 gem,就可以使用对应的包,去看一下https://guides.rubygems.org/what-is-a-gem/
直接在 irb 里输入都能用吧,不过前提你装了那两个 gem,不然会报错
找到了一个示例,这爬的第二页数据,其中topic/38279,浏览器访问的时候不见了
同时刷的,并且两边都重试了好几次。
物件导向程序设计,翻译的好生硬。。。
有一个大胆的想法:
假设原来 puma 在 3000 端口运行
nginx 负载均衡:3000 和 3001 端口
然后 deploy 到 3001 端口,成功后,然后 kill 3000 端口的 puma,kill -9 $(lsof -i:#{3000} -t)
同理,下次检测到 3001 端口被占用,则先部署到 3000 端口,然后kill -9 $(lsof -i:#{3001} -t)
首先,如果你是要创建 vm,我觉得页面应该叫 new,而不是 show
基于如上:
创建 vm 页面的地址: http://localhost:3000/servers/:server_id/vms/new
发起创建 vm 的请求:http://localhost:3000/servers/:server_id/vms
(post )
你的 routes.rb:
resources :servers, only: :show do
resources :vms, only: [:new, :create]
end
class VmsController < ApplicationController
# 渲染创建页面的action
def new
@vm = Vm.new
end
def create
server = Server.find params[:server_id]
server.vms.create!(vm_params)
end
private
def vm_params
# .....
end
end
建议楼主补一下 rails 基础,以及 resour 相关的。
只是第一次比较慢?另外是本地请求吗
另外
有进程或者线程卡住了。导致后面的请求一直在等待。
我新的请求都是 ESTABLISHED,然后变成 CLOSE_WAIT,确定是因为前面卡住了在等待吗
方便....只是用来测试的
是的,rails 5.2.0,因为我想直接通过 ip 加端口访问,就没用 nignx...
不支持实时预览还是很不方便
活捉一枚大佬