13
gem uninstall sqlite3 bundle install
我的做法是,用 has_secure_password 自己写登录验证,cancancan + rolify 做权限控制,kong 当 api gateway, login request 登录成功返回一个 jwt token,然后前端利用 token 通信
我觉得应该用any?(&:present?)
Thanks,正好解决了我的问题
A.where("updated_at < '#{2.days.ago}'").delete_all
攒个人品
view
select_tag 'document_type_id', options_from_collection_for_select (@document_types, :id, :name), data:{remote: true, url: document_path}
select_tag 'production_id',[]
controller
def document
if params[:document_type_id]
@productions = Production.where(document_id: params[:document_type_id])
end
end
document.js.erb
$('#production_id').html('<%= j(options_from_collection_for_select @productions, :id, :name)%>')
我在工作中一般是这么写的。你试试,可能要将select_tag
转换为对应的f.select
type_id: $
中间隔个空格试试
reinstall ruby 试试
好奇怪的要求。。。用 rails 框架还不让用 rails 的一些推荐方法。
<% @pd_list.each do |d| %>
这句话有 Bug,一旦@pd_list
为 nil,就 500 error 了。
我喜欢用下面的方式写循环
<% @pd_list.try(:each) do |d| %>
看的有点糊涂。首先路由不符合规范,其次 type 和 product 应该是一对多或者多对多关系,应该不用找起来这么复杂。
<script>
$(function({
$("#type_id").change(function(){
$.ajax({
url: xxx_path,
type: 'get',
data: { type_id: $('#type_id').val() }
}).success(data)({
$('xxx').html(data);
})
});
}))
<script>
大概是这样子吧
$(".doc_obj").html("<%= f.collection_select :object_id, Product.all, :id, :name, class:"form-control" %>")
jquery 可以插入 ruby 代码,只是不能再用f.collection_select
了,因为f
这个对象此时是不存在的,可以尝试用select_tag
或其他的 help 方法。也可以用 ajax 来做,把type_id
传入后台,生成想要的 html 后直接替换。
我觉得用 rubymine 挺简单的。半小时到 1 个小时可以搞定。。盗版 key
应该不只是男孩子喜欢吧。。。
好像没影响。
# File activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb, line 878
def establish_connection(config)
resolver = ConnectionSpecification::Resolver.new(Base.configurations)
spec = resolver.spec(config)
remove_connection(spec.name)
message_bus = ActiveSupport::Notifications.instrumenter
payload = {
connection_id: object_id
}
if spec
payload[:spec_name] = spec.name
payload[:config] = spec.config
end
message_bus.instrument("!connection.active_record", payload) do
owner_to_pool[spec.name] = ConnectionAdapters::ConnectionPool.new(spec)
end
owner_to_pool[spec.name]
end
remove_connection(spec_name)
Remove the connection for this class. This will close the active connection and the defined connection (if they exist). The result can be used as an argument for establish_connection, for easily re-establishing the connection.
thank you.
可以。
Sequel 这个 gem 可以参考下。https://github.com/jeremyevans/sequel
rails 渲染 view 的时候会根据 erb 模板默认规则把代码进行转换,helper 方法和@实例变量会转换成静态值在页面显示,<%= f.select xxx %>
会自动变成类似<select><option>
的静态 html 代码,调用 ajax 方法的时候 f 这鬼东西根本就不存在了,这是服务器端的东西,用户看到的是客户端的静态页面,所以你可以用<select></select>
标签来替代<%= f.select %>
。如果是我,我会选择在 view 里面新建一个_select.html.erb,然后把你那段代码放进来,不要<f.select>
,直接用select_tag
,配合 rails 的 options_for_select,controller 里面 render file: '_select.html.erb',页面直接success(data){ append(data)}
append 里面可以写 rails 代码。<%= f.select xxx %>
里面的 f 是一个普通变量,不是实例变量无法进行转换。把f.select xxx
在后台拼接而成再传给前端你试试。
RUA!