小编H O*_*H O的帖子

jQuery"没有属性"选择器?

我可以找到一个具有如下属性的div:

$('.funding-plan-container[data-timestamp]')
Run Code Online (Sandbox Code Playgroud)

但是如果我试图找到一个没有该属性的div,我会收到一个错误 - 我的代码是:

$('.funding-plan-container[!data-timestamp]')
Run Code Online (Sandbox Code Playgroud)

jQuery中是否有"没有属性"选择器?

作为参考,这里的用例是没有动态添加任何没有timestamp属性的div,因此很有用.

谢谢!

javascript jquery

135
推荐指数
3
解决办法
7万
查看次数

Rails 3 - 自定义验证

我对Rails 3中的自定义验证选项感到有些困惑,我希望有人可以指出我可以帮助解决当前问题的资源.

我目前有3个型号vehicle,trimmodel_year.他们看起来如下:

class Vehicle < ActiveRecord::Base
  attr_accessible :make_id, :model_id, :trim_id, :model_year_id
  belongs_to :trim
  belongs_to :model_year
end

class ModelYear < ActiveRecord::Base attr_accessible :value has_many :model_year_trims has_many :trims, :through => :model_year_trims end

class Trim < ActiveRecord::Base attr_accessible :value, :model_id has_many :vehicles has_many :model_year_trims has_many :model_years, :through => :model_year_trims end

我的疑问是这样的 - 当我创建车辆时,如何确保所选择的model_year对修剪有效(反之亦然)?

activerecord ruby-on-rails ruby-on-rails-3

25
推荐指数
2
解决办法
3万
查看次数

Rails - 动态构建深层嵌套对象(Cocoon/nested_form)

我目前有一个带有深度嵌套的复杂形式,我正在使用Cocoon gem来根据需要动态添加部分(例如,如果用户想要在销售表单中添加其他车辆).代码如下所示:

<%= sale.fields_for :sale_vehicles do |sale_vehicles_builder| %>
    <%= render :partial => "sale_vehicles/form", :locals => {:f => sale_vehicles_builder, :form_actions_visible => false} %>    
<% end -%>
<div class="add-field-links">
    <%= link_to_add_association '<i></i> Add Vehicle'.html_safe, sale, :sale_vehicles, :partial => 'sale_vehicles/form', :render_options => {:locals => {:form_actions_visible => 'false', :show_features => true, :fieldset_label => 'Vehicle Details'}}, :class => 'btn' %>
</div>
Run Code Online (Sandbox Code Playgroud)

这对于第一级嵌套非常有效 - sale_vehicle对象由Cocoon正确构建,并且表单按预期呈现.

当存在另一级嵌套时问题出现 - sale_vehicle部分看起来像这样:

<%= f.fields_for :vehicle do |vehicle_builder| %>
    <%= render :partial => "vehicles/form", :locals => {:f => …
Run Code Online (Sandbox Code Playgroud)

activerecord ruby-on-rails ruby-on-rails-3 cocoon-gem

20
推荐指数
1
解决办法
8637
查看次数

Bootstrap - 添加图例

我目前正在使用twitter bootstrap,它运行良好,但我想在表单中使用的"井"元素添加一个图例(这样我可以有多个井,表示表单上的子部分).

我的表单现在的样子是:

在此输入图像描述

我想添加一个图例,以便我可以在"详细信息"标题下面有两个单独的部分,但是能够表示它们的用途.传说似乎是最好的方法.

html的相关部分如下所示:

<form>
   <div class="row">
        <div class="span6">
        <div class="nonboxy-widget">
            <div class="widget-head">
                <h5>Details</h5>
            </div>
            <div class="widget-content">
                 <div class="widget-box">
                    <div class = 'form-horizontal well'>
                        <fieldset>
                            <div class="control-group">
                                <label class="control-label">Sale Type</label>
                                <div class="controls">
Run Code Online (Sandbox Code Playgroud)

当我尝试将一个图例标记添加到fieldset或divwith class时,form-horizontal well它会像框内的标题一样呈现,而不像普通的html图例.它呈现如下:

在此输入图像描述

与代码

<div class = 'form-horizontal well'>
  <fieldset>
    <legend>Details</legend>
    <div class="control-group">
Run Code Online (Sandbox Code Playgroud)

任何人都可以推荐一种方法来让它像正常的图例一样呈现在盒子的边框上吗?

编辑:感谢Simbirsk的代码,我现在有:

在此输入图像描述

这非常接近,但我想要的是让图例看起来像一个字段集上的普通html图例(即它位于边框中),所以我将CSS更改为:

legend {
padding: 0;
margin-left: 10px;
margin-bottom: -9px;
border: 0;
color: #999999;
background-color: #333333;
}
Run Code Online (Sandbox Code Playgroud)

但结果是:

在此输入图像描述

如何确保井上的边界"破裂"(不会显示在文本后面),就像普通的字段集图例一样?

编辑2:编辑完第一个答案后,我将代码应用到我的CSS中,结果是:

在此输入图像描述

你会注意到这是不是完全是我一直在寻找的 - 我试图让井div的边界的传说,而不是在字段集本身(因为这是一个嵌套形式,有可能是一个内部的多个字段集好,所以我不能把边框放在fieldset本身上).

我似乎与上面的代码,唯一的问题是把休息在传说是边境实现这一点 - 这可以用某种不透明的传说文字的背景,和比特填充的呢?

还有什么建议?

谢谢!

html css twitter-bootstrap

19
推荐指数
2
解决办法
7万
查看次数

SSH到服务器后面的防火墙

我目前正在尝试研究如何SSH到防火墙后面的服务器,拒绝所有传入的连接.服务器可以SSH出来,所以我想知道是否有办法让防火墙后面的服务器创建到我的工作站的SSH隧道,然后允许我的工作站通过它发送命令回服务器?

我已经研究过隧道/反向隧道,但这些似乎是端口转发解决方案,由于防火墙拒绝所有端口上的所有连接,因此无法正常工作.

理想情况下,我想在Ruby(使用Net :: SSH gem)中执行此操作,以便不要像以下那样打开新连接:

Net::SSH.start('host', 'user', :password => "password")
Run Code Online (Sandbox Code Playgroud)

我可以以某种方式绑定到现有的隧道.

谢谢!

ssh tunneling

15
推荐指数
1
解决办法
3万
查看次数

DynamoDB多租户IAM策略(与其他用户共享文档)

我正在尝试使用DynamoDB和Cognito创建一个多租户应用程序.文档非常清楚如何实现细粒度授权,以便用户只能通过向IAM访问策略添加条件来访问自己的记录,如下所示:

"Condition": {
                "ForAllValues:StringEquals": {
                    "dynamodb:LeadingKeys": [
                        "${cognito-identity.amazonaws.com:sub}"
                    ]
                 }
             }
Run Code Online (Sandbox Code Playgroud)

当Cognito用户id是行的哈希键时,这非常适合允许用户读写自己的记录,但我正在努力解决如何允许其他用户只读访问某些记录的问题.

以一个有多个课程的学生的模型为例:

{
    “student_id”: “ABC-1234567”,
    “course_name”: “Statistics 101”,
    “tutors”: [“Cognito-sub-1”, “Cognito-sub-2”],
    “seminar_reviews”: [ 
        {
            “seminar_id”: “XXXYYY-12345”
            “date”: “2018-01-12”,
            “score”: “8”,
            “comments”: “Nice class!”  
        },
        {
            “seminar_id”: “ABCDEF-98765”
            “date”: “2018-01-25”,
            “score”: “3”,
            “comments”: “Boring.”  
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

(Cognito-sub-1是导师的Cognito id)

通过将上述策略条件应用于用户的IAM角色,用户可以读取和写入此文档,因为散列键(student_id)是用户的Cognito id.

我也希望文档中列出的导师具有对某些属性的只读访问权限,但我找不到任何如何完成此操作的示例.我知道我不能使用dynamodb:LeadingKeys条件因为教师不是表的哈希键.如果我设置使用导师列表作为哈希键的全局二级索引(GSI),是否可以这样做?

如果可以使用索引完成此操作,我认为这只允许对该索引的读访问(因为索引不允许写操作).是否有任何替代方法允许基于非散列键的属性进行写访问?

或者,我可以使用更长的字符串作为散列键,连接类似的属性”owner”:以及”read-only”:包含Cognito ID列表的属性,并在我的策略中使用它来创建仅基于散列键的更细粒度的权限模型吗?这假定策略可以解码字符串中的列表,因为DynamoDB不允许散列键是列表,JSON对象或类似物.

我无法找到任何考虑细粒度访问控制的资源,除了允许用户只读取/写入自己的记录,所以如果有人可以指导我,那将是一个很好的开始.

multi-tenant amazon-web-services amazon-dynamodb amazon-cognito aws-iam

13
推荐指数
1
解决办法
470
查看次数

查询Dynamodb中的嵌套属性

如何有效地查询Dynamodb中的嵌套属性?

我有一个如下的文档结构,它允许我将相关信息存储在文档本身(而不是引用它).

存储嵌入课程的研讨会是有意义的,因为它们可能会与课程一起被查询(它们都是课程特定的,即课程有很多研讨会,研讨会属于课程).

在我正在迁移的CouchDB中,我可以编写一个View,它将为查询生成一些嵌套属性.我知道我不能将任何不是顶级属性的东西投射到dynamodb二级索引中,所以这种方法似乎不起作用.

这让我回到了这样一个问题:如果我不能将它们用作索引中的键,如何在不扫描的情况下有效地查询嵌套属性?

例如,如果我想在纳尔逊·曼德拉剧场获得平均上座率,我怎么可以查询的值registrations,并attendees在有"曼德拉剧场"的位置,所有的讲座不用借助扫描?

{
    “course_id”: “ABC-1234567”,
    “course_name”: “Statistics 101”,
    “tutors”: [“Cognito-sub-1”, “Cognito-sub-2”],
    “seminars”: [ 
        {
            “seminar_id”: “XXXYYY-12345”,
            “epoch_time”: “123456789”,
            “duration”: “5400”,
            “location”: “Nelson Mandela Theatre”,
            “name”: “How to lie with statistics”,
            “registrations”: “92”,                
            “attendees”: “61”
        },
        {
            “seminar_id”: “BBBCCC-44444”,
            “epoch_time”: “155555555”,
            “duration”: “5400”,
            “location”: “Nelson Mandela Theatre”,
            “name”: “Statistical significance for dog owners”,
            “registrations”: “244”,
            “attendees”: “240”
        },
        {
            “seminar_id”: “XXXAAA-54321”,
            “epoch_time”: “223456789”,
            “duration”: “4000”,
            “location”: “Starbucks”,
            “name”: “Is feral cat population growth …
Run Code Online (Sandbox Code Playgroud)

indexing amazon-web-services nosql amazon-dynamodb

10
推荐指数
1
解决办法
2902
查看次数

提交表单时忽略字段

我目前有一个建造车辆的表格.车型最初看起来像:

class Vehicle < ActiveRecord::Base
  attr_accessible :trim_id

  belongs_to :trim
end
Run Code Online (Sandbox Code Playgroud)

你会注意到没有make_idmodel_id列; 这些不是必需的,因为修剪属于模型,而模型属于品牌,因此它们不需要存储在车辆模型中.

问题出现在车辆表格上 - 我有一些链接选择,我可以选择一个品牌,然后是模型,然后是修剪.当我创建一个新车辆时,以下代码工作正常:

<%= select("", "", Make.all.collect {|p| [ p.value, p.id ] }, {:prompt => 'Select Make'}, {} %>
<%= f.select("", "", options_for_select([]), {:prompt => 'Select Model'}, {} %>
<%= f.select(:trim_id, options_for_select([]), {:prompt => 'Select Trim'} %>
Run Code Online (Sandbox Code Playgroud)

正如您将注意到的,make和model选择没有表单参数,因此被忽略.这很好,车辆保存正确.

当我想编辑这种车辆时出现困难; 因为make和model只是虚拟选择链接到修剪,它们最初设置为默认值,而不是正在编辑的车辆的品牌和型号.结果我更新了我的模型,看起来像:

class Vehicle < ActiveRecord::Base
  attr_accessible :trim_id

  belongs_to :trim
  has_one :model, :through => :trim
  has_one :make, :through => :model
end
Run Code Online (Sandbox Code Playgroud)

并将表单更新为:

<%= f.select(:make, Make.all.collect {|p| …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails ruby-on-rails-3

6
推荐指数
1
解决办法
3573
查看次数

AWS API Gateway - 使用具有Cognito用户池授权程序的访问令牌?

我正在配置具有各种前端(移动和Web应用程序)和单个API后端的应用程序,由Lambda提供支持并通过AWS API Gateway访问.

由于我计划使用Cognito对用户进行身份验证和授权,因此我在API网关上设置了Cognito用户池授权程序和几种API方法.

使用这样的架构,我的应用程序(例如iOS或Vue.js应用程序)从OAuth角度来看是客户端应用程序,而我的API网关后端是资源服务器.基于此Auth0论坛帖子,我似乎应该在我的客户端应用程序中使用ID令牌,并传递访问令牌以授权我的API网关资源.

当我打的Cognito /oauth2/authorize终点获得接入码,然后使用该代码打/oauth2/token终点,我得到3个令牌-一个访问令牌,一个ID令牌和刷新令牌.到目前为止一切顺利,因为我应该拥有我需要的东西.

这是我碰到的困难-使用API网关Cognito用户池授权者控制台上的测试功能,我可以在ID令牌粘贴,并将其传递(屏幕令牌解码).但是当我粘贴Access Token时,我得到了401 - unauthorized.

在我Cognito的设置,我已经启用了Authorization Code Grant止流,与emailopenid范围(这似乎是Cognito让我得到试图保存而不至少这些打勾错误的最小值).

我是否需要添加一些特定的范围才能让API Gateway使用访问代码授权请求?如果是这样,这些配置在哪里?

或者我错过了什么?API网关是否仅允许ID令牌与Cognito用户池授权程序一起使用?

oauth oauth-2.0 amazon-cognito aws-api-gateway aws-cognito

6
推荐指数
2
解决办法
4968
查看次数

选择 - 在选择后应用选择后绑定到更改事件

我目前正在使用jQuery Chosen插件,它运行良好.目前,我可以像这样绑定Chosen的更改事件:

$('#the_selector').chosen().change( ... );
Run Code Online (Sandbox Code Playgroud)

这很好用.但是,我遇到了一个案例,在Chosen已经应用于select之后我需要绑定到change事件.有没有办法做到这一点?

javascript jquery jquery-chosen

5
推荐指数
1
解决办法
4979
查看次数