我有我在服务器上生成的JSON文件,因为页面是可见的,所以我想在客户端上访问它.基本上我想要实现的是:
我在我的html文档中声明了以下标记:
<script id="test" type="application/json" src="http://myresources/stuf.json">
Run Code Online (Sandbox Code Playgroud)
源中引用的文件具有JSON数据.正如我所见,数据已经下载,就像脚本一样.
现在,我如何在Javascript中访问它?我已经尝试使用和不使用jQuery访问脚本标记,使用多种方法来尝试获取我的JSON数据,但不知怎的,这不起作用.innerHTML如果json数据是在脚本中内联编写的,那么它本来可行.它不是,而不是我想要实现的目标.
页面加载后的远程JSON请求也不是一个选项,以防您想要建议.
我只注意到,在的SoundCloud,跑道上的"动作"按钮(如,转贴等)都是HTML按钮标签.此外,它们既不在形式内,也不与形式相关联,也不提交表格(它们显然是通过javascript处理的).这是有效的HTML吗?没有表格的按钮是否可以存在?或者这只是使这些按钮成为可点击的div?屏幕阅读器的有效/无效程度如何?
我写了一个带有一定数量依赖关系的gem,其中一些我不想在捆绑到另一个项目时隐式需要.一个例子是uuidtools gem,我只想在使用它的文件中要求它.
gem.add_dependency("uuidtools",["=2.1.3"], :require => false)
Run Code Online (Sandbox Code Playgroud)
这种语法是错误的,因为:require => false在那里是意外的,但这或多或少总结了我想用它做什么.有人可以帮我吗?
我想知道我是否可以强迫这种情况发生
class A
def bomb ; "bomb" ; end
end
class B ; end
bomb = A.instance_method(:bomb)
b = B.new
bomb.bind(b)
Run Code Online (Sandbox Code Playgroud)
目前它抛出错误TypeError:bind参数必须是A的实例
我发现这对于我可以用这些未绑定的方法做的非常有限,可能性有点限制.在这些情况下(我不仅仅指幂等函数)它会有意义吗?并且执行错误就足够了,如果我将处理A中未在B中复制的变量,我真的很想知道如何强制这个绑定.
我在我的项目中使用骨干,与外部API的通信集成.我想使用记录的实时更新.由于我无法访问此外部应用程序的主后端,并且它们既不提供websocket服务器也不提供长轮询端点,所以我基本上可以选择使用setInterval进行常规轮询,并且周期为50秒.它一直运作良好.我的问题是边缘情况.如果出于某种原因,API请求会挂起,超过50秒,我想说,我将立即触发新请求.这意味着,现在有2个挂起请求,最终会加起来.有没有办法为请求设置超时?我知道所有请求都导致Backbone.sync,但我正在检查源代码,我没有看到任何可行的方法来设置XmlHttpRequest的超时.有没有办法干净地完成这项工作而不会覆盖行为?还是有其他解决方案/解决方法吗?
我想在会话/事务中记录用户的id,使用SET,所以我以后可以在触发器函数中使用它来访问它current_setting.基本上,我正在尝试从之前发布的非常相似的票证中选择n2 ,区别在于我正在使用PG 10.1.
我一直在尝试3种设置变量的方法:
SET local myvars.user_id = 4,从而在交易中在本地设置;SET myvars.user_id = 4从而将其设置在会话中;SELECT set_config('myvars.user_id', '4', false),取决于最后一个参数,将是前两个选项的快捷方式.它们都不能在触发器中使用,触发器NULL在获取变量时接收current_setting.这是我设计的用于对其进行故障排除的脚本(可以很容易地与postgres docker镜像一起使用):
database=$POSTGRES_DB
user=$POSTGRES_USER
[ -z "$user" ] && user="postgres"
psql -v ON_ERROR_STOP=1 --username "$user" $database <<-EOSQL
DROP TRIGGER IF EXISTS add_transition1 ON houses;
CREATE TABLE IF NOT EXISTS houses (
id SERIAL NOT NULL,
name VARCHAR(80),
created_at TIMESTAMP WITHOUT TIME ZONE DEFAULT now(),
PRIMARY KEY(id)
);
CREATE …Run Code Online (Sandbox Code Playgroud) 您有这个特殊用例,我必须在没有特定参数的文件中定义工厂,然后在工厂定义中将其插入.这是我从外部依赖项(gem,plugin,whtv)导入工厂定义的情况,我需要在我的项目中扩展它.就像是:
# external def
FactoryGirl.define do
factory :user do
email "somebody@somebodysworld.com"
end
end
# proj def
FactoryGirl.define do
factory :user do
password "qwerty"
end
end
Run Code Online (Sandbox Code Playgroud)
这段代码不起作用,因为工厂女孩认为我正在重新定义工厂.但我真正想要的是扩展它.这可能吗?
我想使用类似的东西find_in_batches,但我想分组一个特定的属性,比如,让我们说,id,而不是分组完全实例化的AR对象.所以,基本上,混合使用find_in_batches和pluck:
Cars.where(:engine => "Turbo").pluck(:id).find_in_batches do |ids|
puts ids
end
# [1, 2, 3....]
# ...
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点(也许与Arel),而不必自己编写OFFSET/LIMIT逻辑或重复分页宝石如paginate或kaminari?
我在sinatra项目中使用ActiveSupport,并遵循一些同行的建议,我一直在使用ActiveSupport :: Dependencies.autoload_paths来简化我在开发中加载我的类.现在我正在接近部署日,我并不知道如何急切地加载它们.在Rails中,这很简单:只需设置config.cache_classes = true并按照自己的方式行事即可.但在Sinatra应用程序中,我没有看到如何急切加载它们.
我想为ActiveAdmin设置基本身份验证,内部设计解决方案不适用于我的情况.为此,我希望能够将中间件添加到ActiveAdmin引擎,然后将其捆绑到我的应用程序中.我设法做的是:
ActiveAdmin::Engine.configure do |config|
config.middleware.use Rack::Auth::Basic do |username, password|
username == 'admin' && password == 'root'
end
end
Run Code Online (Sandbox Code Playgroud)
但显然这不起作用,因为我的主动管理路线仍未受到保护.我怎样才能有效地做到这一点?不,我不想用基本身份验证保护我的整个网站.
html ×2
html5 ×2
activeadmin ×1
activerecord ×1
ajax ×1
arel ×1
backbone.js ×1
button ×1
factory-bot ×1
forms ×1
gem ×1
gemspecs ×1
javascript ×1
json ×1
plpgsql ×1
polling ×1
postgresql ×1
real-time ×1
rspec ×1
ruby ×1
script-tag ×1
sinatra ×1
sql ×1
unit-testing ×1