小编Ton*_*ony的帖子

Ruby Rails集合选择是否显示空白的"提示"值?

我有一个集合选择如下:

<%= f.collection_select :region_id, Region.find(:all), :id, :name, { :prompt => 'Select a State/Province' }, :style => "width: 200px;" %>
Run Code Online (Sandbox Code Playgroud)

有时会出现来自:prompt选项的提示,但有时则不会.有谁知道我可以在哪里开始解决这个问题?也许我一直在看它太久了......

ruby forms collections ruby-on-rails prompt

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

在Ruby on Rails中使用夹具播种数据是危险的

我有需要驻留在我的数据库(国家,地区,运营商等)的初始数据.我有一个任务rake db:seed将为数据库设定种子.

namespace :db do
  desc "Load seed fixtures (from db/fixtures) into the current environment's database." 
  task :seed => :environment do
    require 'active_record/fixtures'

    Dir.glob(RAILS_ROOT + '/db/fixtures/yamls/*.yml').each do |file|
      Fixtures.create_fixtures('db/fixtures/yamls', File.basename(file, '.*'))
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

我有点担心,因为这个任务擦除我的数据库干净并加载初始数据.这甚至可能在生产中不止一次这样做的事实吓跑了我.这是正常的,我只需要谨慎吗?或者人们通常以某种方式保护这样的任务?

ruby-on-rails fixtures random-seed

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

Ruby on Rails中的多表继承与单表继承

在过去的几个小时里,我一直在努力思考我应该走哪条路线.我有一个通知模型.到目前为止,我已经使用了notification_type列来管理类型,但我认为最好为通知类型创建单独的类,因为它们的行为方式不同.

现在,有3种方式可以发送通知:短信,推特,电子邮件

每个通知都有:

id
subject
message
valediction
sent_people_count
deliver_by
geotarget
event_id
list_id
processed_at
deleted_at
created_at
updated_at
Run Code Online (Sandbox Code Playgroud)

似乎STI是一个很好的候选人吧?当然Twitter/SMS不会有主题,Twitter也不会有sent_people_count,告别.在这种情况下,我会说他们分享他们的大部分领域.但是,如果我为twitter添加一个"reply_to"字段,为DM添加一个布尔值呢?

我的观点是,现在STI是有道理的,但这是一个案例,我可能会在未来踢我自己,而不仅仅是从MTI开始?

为了使事情更复杂,我想要一个通讯模型,这是一种通知,但区别在于它不会使用event_id或deliver_by.

我可以使用大约2/3的通知基类字段来查看通知的所有子类.STI是不是很明智,或者我应该使用MTI?

ruby-on-rails single-table-inheritance

11
推荐指数
2
解决办法
7179
查看次数

Ruby文件I/O中的EOFError是什么?

官方文件没有明确规定.我理解EOFError的意思是"文件结束错误",但究竟是什么意思呢?如果文件阅读器到达文件末尾,那对我来说听起来不是一个错误.

ruby file-io eoferror

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

服务器是作为后台进程运行的无限循环吗?

服务器本质上是一个运行无限循环侦听端口的后台进程吗?例如:

while(1){
   command = read(127.0.0.1:xxxx);
   if(command){
      execute(command);
   }
}
Run Code Online (Sandbox Code Playgroud)

当我说服务器时,我显然不是指物理服务器(计算机).我指的是MySQL服务器,或Apache等.

完全披露 - 我没有时间浏览任何源代码.实际代码示例会很棒!

c theory

10
推荐指数
2
解决办法
1148
查看次数

为您的简报实施取消订阅链接的最佳方式是什么?

我在想我在unsubscribe链接中创建一个停用代码及其用户ID.然后,当我的时事通讯的收件人点击该链接时,我可以查找他们的用户ID并查看停用代码是否匹配.

这听起来像是最好的方式吗?

还有什么其他方法?

email newsletter unsubscribe

9
推荐指数
2
解决办法
7776
查看次数

哈希和盐渍密码是否可以抵御字典攻击?

我知道salt会将相同的密码哈希值设置为不同的值.但是,盐通常使用密码存储在数据库中.所以让我说我是攻击者,这里是我如何使用字典攻击盐(注意在这个例子中我不写出128位哈希或盐为了简洁起见):

user_pw = 'blowfish'

Given:
email = 'blah@blah.com'
hash = '1234567890'
salt = '0987654321'

function attack(){
  for each(word in dictionary)
    md5( word * salt ) == hash ? cracked_one(email, word)
}
Run Code Online (Sandbox Code Playgroud)

据我所知,这可以防止黑客使用彩虹表......但似乎并没有阻止字典攻击.我想你可以在哈希算法中添加其他东西,但是在安全性的情况下我们必须假设攻击方法是已知的.

因此,盐腌似乎可以防止黑客弄清楚哪些密码可能是字典密码(多个用户拥有的密码)并防止彩虹攻击......但不会阻止字典攻击.

这是正确的分析吗?有关更好安全性的建议吗?

谢谢!

security authentication hash salt

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

简单的 Flutter 列表视图断断续续的滚动

我一直在评估 Flutter 在应用程序中的使用情况,并从一个非常简单的文本列表示例开始。构建第一个视图后,我注意到列表视图滚动不顺畅,因此我仔细查看了展示应用程序,结果发现,虽然Reflectly是一个漂亮的应用程序,但它也遇到了同样的问题 - 滚动非常不稳定简单的文本列表。到目前为止,我已经在 iOS 模拟器、iPhone XR、Samsung Galaxy Android 设备和 Android Pixel 2 XL 模拟器上确认了这一点。

我没有看到有关此问题的讨论,所以我想知道我是否做错了什么,但也怀疑我的示例有多简单,而且 Reflectly 也有同样的问题。

我希望社区能够理解: 1. 我是否做了任何明显错误/愚蠢的事情导致了这种情况 2. 如果你在你的设备上运行,你能看到我所看到的吗?3. 这是否已知并且将会得到解决?如果我选择使用 Flutter,我是否可以放心地看到我的列表在不久的将来会顺利滚动?

下面是您可以运行来重现此内容的代码(抱歉,这有点做作,但我想尝试一下各种 Flutter/Dart 功能):

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        title: 'My List',
        home: Scaffold(
          appBar: AppBar(
            title: Text('My List'),
            backgroundColor: Color.fromRGBO(255, 0, 0, 0.9),
          ),
          body: Padding(
            padding: EdgeInsets.all(16.0),
            child: Column(
            children: [
              Expanded(child: TimeSelector()),
            ],
          )),
        ));
  }
} …
Run Code Online (Sandbox Code Playgroud)

performance flutter

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

Ruby on Rails使用RESTful Authentication插件进行功能测试

我今天开始为我的rails应用程序编写功能测试.我使用RESTful身份验证插件.我遇到了一些令人困惑的事情,我希望有人可以为我澄清.

1)我写了一个快速登录功能,因为我的rails应用程序中的大多数功能都需要身份验证.

def login_as(user)
   @request.session[:user_id] = user ? user.id : nil
end
Run Code Online (Sandbox Code Playgroud)

我看到这个函数的问题,它基本上是伪造的身份验证.我应该担心吗?也许只要我在某处测试真正的身份验证方法就可以走这条路.或者这可能是一种糟糕的做法.

2)第二个令人困惑的事情是,在我的功能测试的某些地方,我需要完整的身份验证过程.当用户被激活时,我有do_activate方法为用户创建一些初始对象.它类似于为学生应用程序创建空白笔记本对象和笔对象,如果这是有意义的.

因此,为了正确测试我的应用程序,我需要用户点击该激活状态,以便创建这些对象.我目前正在使用Factory Girl创建用户,然后调用上面的login_as函数来伪造身份验证.

我想另一个选择是跳过完整的身份验证序列,然后用Factory Girl创建空白对象.我可以在其他地方测试正确的身份验证.

你怎么看?如果我应该通过正确的序列,为什么下面的代码不是调用do_activate函数?

user = Factory.create(:user)
user.active = 1
user.save
Run Code Online (Sandbox Code Playgroud)

谢谢!

testing ruby-on-rails restful-authentication functional-testing

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

当预设为640x480时,为什么使用AVFoundation捕获图像会给我480x640图像?

我有一些非常基本的代码来使用AVFoundation捕获静态图像.

AVCaptureDeviceInput *newVideoInput = [[AVCaptureDeviceInput alloc] initWithDevice:[self backFacingCamera] error:nil];

    AVCaptureStillImageOutput *newStillImageOutput = [[AVCaptureStillImageOutput alloc] init];

    NSDictionary *outputSettings = [[NSDictionary alloc] initWithObjectsAndKeys:
                                    AVVideoCodecJPEG, AVVideoCodecKey,
                                    nil];


    [newStillImageOutput setOutputSettings:outputSettings];
    [outputSettings release];


    AVCaptureSession *newCaptureSession = [[AVCaptureSession alloc] init];
    [newCaptureSession beginConfiguration];
    newCaptureSession.sessionPreset = AVCaptureSessionPreset640x480;

    [newCaptureSession commitConfiguration];
    if ([newCaptureSession canAddInput:newVideoInput]) {
        [newCaptureSession addInput:newVideoInput];
    }
    if ([newCaptureSession canAddOutput:newStillImageOutput]) {
        [newCaptureSession addOutput:newStillImageOutput];
    }
    self.stillImageOutput = newStillImageOutput;
    self.videoInput = newVideoInput;
    self.captureSession = newCaptureSession;

    [newStillImageOutput release];
    [newVideoInput release];
    [newCaptureSession release];
Run Code Online (Sandbox Code Playgroud)

我捕获静止图像的方法也非常简单,并打印出AVCaptureVideoOrientationPortrait的方向:

- (void) captureStillImage
{
    AVCaptureConnection *stillImageConnection = [AVCamUtilities connectionWithMediaType:AVMediaTypeVideo …
Run Code Online (Sandbox Code Playgroud)

objective-c avfoundation orientation ios4

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