小编Ale*_*vik的帖子

警告:propType失败:提供给`Route`的无效prop`组件`

我正在尝试新的react-router 1.0.0而且我收到了一些我无法解释的奇怪警告:

警告:propType失败:提供给`Route`的无效prop`组件`.

警告:提供给`Route`的未定义的`component`无效.

该应用很简单:

import React from 'react';
import ReactDOM from 'react-dom';
import { Router, Route } from 'react-router';

import App from './components/app';

var Speaker = require('./components/speaker');

ReactDOM.render((
    <Router>
      <Route path="/" component={App}>
        // This is the source of the warning:
        <Route path="speaker" component={ Speaker }/>
      </Route>
    </Router>
), document.getElementById('react-container'));
Run Code Online (Sandbox Code Playgroud)

speaker.jsx:

import React from 'react';

var Speaker = React.createClass({
  render() {
    return (
        <h1>Speaker</h1>
    )
  }
});

module.exoprts = Speaker;
Run Code Online (Sandbox Code Playgroud)

app.jsx只有以下render()函数:

render() {
    return (
        <div>
            <Header title={this.state.title} status={this.state.status} /> …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-jsx react-router

48
推荐指数
4
解决办法
8万
查看次数

如何使用Ruby编辑或编写现有PDF?

我有几个包含复杂内容的PDF模板文件以及其中的几个空白区域/区域.我需要能够在这些空白区域中写入文本并将生成的PDF保存在文件夹中.

我搜索了这个问题的答案非常密集,但我找不到明确的答案.其中一个更好的解决方案是PDF :: Toolkit,但它需要购买Adobe Acrobat才能为现有PDF文档添加可替换属性.

PHP世界拥有FPDI,可用于简单地打开PDF文件并在现有内容上书写/绘制.这个库有一个Ruby端口,但它的最后一次提交发生在2009年初.此项目看起来并不像它被广泛使用和支持.

问题是:在现有PDF上编辑,编写或绘图的Ruby方式有哪些?

这个问题似乎也没有在这里回答.这些问题是相关的,但并不完全相同:

ruby pdf-generation ruby-on-rails fpdi

36
推荐指数
4
解决办法
2万
查看次数

在Ruby中编写二进制文件

是否有一种简单的方法将二进制数据写入二进制文件,就像我们以前在C/C++中所做的那样?例如,如何在不使用花哨数学的情况下创建具有序列化4字节整数值的4字节文件?

ruby

32
推荐指数
3
解决办法
4万
查看次数

在Ubuntu上运行docker:挂载的主机卷不能从容器写入

Docker在我的Mac上工作得很好,但我必须在VirtualBox(或Parallels,或VMWare Fusion)中运行docker主机,因为Mac的内核不支持docker.

所以我尝试在Ubuntu桌面上设置我的应用程序和docker-compose - 本机地,docker客户端和docker主机在同一系统上物理运行.这有效,但我运行的docker容器无法写入已装入的主机卷.

我使用docker-compose进行以下设置:

volumes:
   - ./api:/usr/src/app
Run Code Online (Sandbox Code Playgroud)

所以我将主机Ubuntu OS的"api"目录挂载到/ usr/src/app下的docker容器中.

docker inspect <container ID> 表明该卷是可写的

"Destination": "/usr/src/app",
"Mode": "rw",
"RW": true
Run Code Online (Sandbox Code Playgroud)

但事实并非如此:permission denied当我尝试从docker容器中创建目录或编辑文件时,我得到了.

当然,我搜索了这个问题,我遇到了一些CentOS/RHEL的SELinux问题,但我运行的是Ubuntu 15.10,64位版本,而不是CentOS.

linux ubuntu docker docker-compose

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

Turbolinks:Rails 4显示慢速页面进展的方式是什么?

这个问题可能听起来类似于Rails turbolinks长请求不显示页面加载.

我最近开始使用新的Rails 4应用程序,它默认使用Turbolinks库 - 它很棒:让应用程序感觉更快/更快,但是我确实有一些页面比其他页面慢.

不幸的是,我找不到一个让浏览器显示默认加载指示器的好方法- 就像加载"常规"网页时一样.人们推荐不同的JavaScript解决方案,例如https://github.com/caarlos0/turbolinks_transitions.虽然有些看起来不错,但"平均互联网用户"并不习惯在默认浏览器的加载指示器以外的地方看到加载进度.

  • 如何让Chrome在标题页中显示"旋转半圆"?
  • 或者我如何让Safari在地址栏中显示"移动蓝色波浪"?
  • 等等.

我的大多数页面都很快,所以我想为不会在300毫秒内加载的页面显示此加载指示器.

谢谢!亚历克斯.

javascript browser throbber turbolinks ruby-on-rails-4

9
推荐指数
1
解决办法
3526
查看次数

是否应该多次接受相同的SAML响应两次?

SAML联合软件是否应该接受相同的SAML响应,只要它在允许的SAML令牌生存期内?

简单来说: IDP(标识提供者)发出SAML响应,然后SP(服务提供者)接受/处理它.可以在首次使用后立即重复使用相同的未修改的SAML响应吗?鉴于SAML发布时间戳在允许的范围内.

在安全方面,将SAML令牌(响应)限制为仅一次使用是有意义的,因此即使它被"中间人"窃取 - 它也不能被重用.但是为了实现这一点,软件需要在某处存储有关SAML响应的一些信息:序列号,整个事物的哈希值?

请提供一些链接,说明可能的解释和/或实施示例.

谢谢!亚历克斯.

soa saml single-sign-on opensaml

8
推荐指数
2
解决办法
3945
查看次数

在ASP.NET中如何识别/处理404异常?

我需要以不同于其他所有类型的方式处理404异常.识别这些404异常的最佳方法是什么(将它们与其他异常区分开来)?

问题是404错误没有特殊的异常类,我得到常规的System.Web.HttpException,其中Message ="文件不存在".

我应该只使用异常消息还是有更好的方法?

谢谢.

asp.net exception-handling http-status-code-404

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

使用 paper_trail gem 如何跳过零和空白之间的变化?

TL;DR:如何在 paper_trail之间nilblank中跳过更改?

我使用https://github.com/airblade/paper_trail来记录几个ActiveRecord对象中的数据更改。从我的客户的角度来看,某些更改是无用的,因此我需要忽略nilblank(空字符串)之间的所有更改。

paper_trail好像没有这样的选择。您可以使用:skip选项跳过某些字段。您能否传入一个“决定”有条件地跳过更改的 Proc?

ruby activerecord ruby-on-rails paper-trail-gem

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

如何有效地为Devise用户提供种子?

我正试图在我的Rails 3项目中使用rake db:seed为大约100,000个用户播种,这真的很慢!

这是代码示例:

# ...
User.create!(
  :display_name => "#{title} #{name} #{surname}",
  :email => "#{name}.#{surname}_#{num}@localtinkers.com",
  :password => '12341234'
)
Run Code Online (Sandbox Code Playgroud)

它有效,但它真的很慢,因为每个用户:

  1. 设计发出SELECT语句以查明电子邮件是否已被采用.
  2. 发出单独的INSERT语句.

对于其他对象,我使用" ar-extensions "和" activerecord-import "gems,如下所示:

tags.each do |tag|
  all_tags << Tag.new(:name => tag)
end

Tag.import(all_tags, :validate => false, :ignore => true)
Run Code Online (Sandbox Code Playgroud)

上面为所有标记创建了一个INSERT语句,它的工作速度非常快,就像从SQL转储中恢复MySql数据库一样.

但对于用户我不能这样做,因为我需要Devise为每个用户生成加密密码,盐等.有没有办法在SQL端生成它们,还是有其他有效的方式来播种用户?

谢谢.

mysql performance ruby-on-rails devise

4
推荐指数
1
解决办法
5296
查看次数

SAML 2.0 身份验证请求的目的/用途是什么?

我已经浏览了类似的问题并阅读了几篇有关 SAML 2.0 的文章,但我仍然无法理解 SAML Auth Request。

我已经实施了多个基于 SAML 的 SSO 解决方案,其中我的公司是 IdP(身份提供商)。我们一直通过 SAML 响应将用户从我们的网站发送给第三方:

  1. 用户登录我们的网站。
  2. 用户单击我们网站上的特殊链接。
  3. 我们准备 SAML 响应 XML。
  4. 我们用我们的私钥对其进行电子签名。
  5. 将其作为 HTML 表单中的隐藏字段以及“RelayState”参数发送回用户的浏览器。
  6. 我们会自动将此表单发布到 SP(服务提供商)URL。

就是这样。

SAML 2.0 文章(例如,维基百科关于 SAML 2.0 的概述文章)表明我们缺少一个步骤:“SAML Auth Request”。看来 SP 需要通过首先向 IdP(我们)发送“SAML 身份验证请求”来启动 SSO,然后我们应该使用 SAML 响应来响应它。

SP 如何决定何时发起 SSO?SP 甚至不知道我们将按照他们的方式发送用户。用户当前已登录我们的网站,由用户决定何时单击该链接,这将“神奇地”在 SP 网站中对他们进行身份验证。

谢谢你!

PS 我知道 SAML 2.0 是“既定的行业标准”,但我使用它的次数越多,我就越觉得它有点矫枉过正。由于其复杂性,存在大量不同的不兼容的实现(根据我的经验)。每次我们与新合作伙伴进行 SSO 时,这都是一种痛苦。大公司通过销售“开箱即用”的 SAML 解决方案赚了一大笔钱,但没有人知道如何正确配置和排除故障,因此人们几乎被迫支付昂贵的承包商费用来完成所有设置。公司希望能够雇用低工资员工来支持那些过于复杂的 SAML 解决方案。当与第三方设置 SSO 时,我经常与那些不知道它是什么的人打交道,他们只是接受过单击按钮并通过电话向我阅读神秘错误消息的培训。这都是由于 SAML 被过度设计造成的。但是,嘿 - 有一个光明的一面:我得到了很好的报酬,因为我对 SAML 足够了解,至少可以让它发挥作用。:)

single-sign-on opensaml saml-2.0

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