小编cpj*_*eur的帖子

使用变量名的Ruby正则表达式

是否可以在ruby中创建/使用基于变量名称值的正则表达式模式?

例如,我们都知道我们可以使用Ruby字符串执行以下操作:

str = "my string"
str2 = "This is #{str}" # => "This is my string"
Run Code Online (Sandbox Code Playgroud)

我想用正则表达式做同样的事情:

var = "Value"
str = "a test Value"
str.gsub( /#{var}/, 'foo' ) # => "a test foo"
Run Code Online (Sandbox Code Playgroud)

显然,这不是列出的工作,我只是把它作为一个例子,以显示我想做的事情.我需要根据变量内容的值进行regexp匹配.

ruby regex

96
推荐指数
4
解决办法
7万
查看次数

如何在表单中编辑Rails序列化字段?

我的Rails项目中有一个数据模型,它有一个序列化字段:

class Widget < ActiveRecord::Base
  serialize :options
end
Run Code Online (Sandbox Code Playgroud)

选项字段可以包含可变数据信息.例如,以下是fixtures文件中一条记录的选项字段:

  options:
    query_id: 2 
    axis_y: 'percent'
    axis_x: 'text'
    units: '%'
    css_class: 'occupancy'
    dom_hook: '#average-occupancy-by-day'
    table_scale: 1
Run Code Online (Sandbox Code Playgroud)

我的问题是让用户在标准表单视图中编辑此信息的正确方法是什么?

如果您只是为选项字段使用一个简单的文本区域字段,您将只获得一个yaml转储表示,并且该数据将仅作为字符串发回.

在Rails中编辑这样的序列化哈希字段的最佳/正确方法是什么?

forms serialization ruby-on-rails

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

查询所有提交到特定文件的git reflog

是否可以检查git reflog以查找特定文件的所有提交.

我提交了文件foo.txt,现在它不再显示在git历史记录中了

git log foo.txt
Run Code Online (Sandbox Code Playgroud)

我想搜索reflog以查找对该文件的所有提交,以便找到我的"丢失"提交.

git reflog

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

在iPhone SDK上格式错误的sqlite数据库磁盘映像

我在使用SQLite作为数据库后端的iPhone SDK上的新应用程序时遇到问题.

偶尔,我的应用程序将停止将数据加载到我的UITableViews,并在通过管理器下载设备DB后,我可以通过命令行访问SQLite DB.我可以查询某些表,但没有得到"SQL错误:数据库磁盘映像格式错误"错误的其他表.请参阅下面的sqlite会话:

    SQLite version 3.6.17
    Enter ".help" for instructions
    Enter SQL statements terminated with a ";"
    sqlite> select * from user;
    1|cpjolicoeur@gmail.com|cpjolicoeur||4d055e38bb1d3758|image/gif|cartoonme_avatar.gif||Craig|Jolicoeur|1|1
    sqlite> select * from item;
    SQL error: database disk image is malformed
    sqlite> 
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我的用户表工作正常,但我的项目表格格式不正确,这与我在我的应用程序中看到的项目不加载相对应.应用程序没有崩溃,数据只是因为这个格式错误而无法加载.

任何想法为什么会这样?我唯一的想法是,数据库可能已损坏,因为我通过应用程序中的后台线程写入SQLite数据库.我通过后台线程中的NSOperationQueue从Web服务器下载数据,并使用下载的数据更新SQLite DB.在后台线程中写入数据库(虽然可能从主线程读取)会破坏数据库,还是其他什么?

database sqlite iphone

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

nginx没有在Rails静态资产上设置expires头

我似乎无法让nginx在我的Rails应用程序中的静态资产上设置expires标头.

我的应用程序使用Phusion Passenger&nginx进行部署.

下面是我的nginx配置文件的相关部分

server {
        listen  80;
        server_name my.domain.tld;
        root /home/deploy/my.domain.tld/current/public;
        passenger_enabled on;
        access_log off;

        location ~* \.(ico|css|js|gif|jp?g|png)\?[0-9]+$ {
                expires max;
                break;
        }

        if (-f $document_root/system/maintenance.html) {
                rewrite ^(.*)$ /system/maintenance.html break;
        }
}
Run Code Online (Sandbox Code Playgroud)

我不确定为什么它的设置不会在我的静态资产上过期(例如/images/foo.png?123456)

我不确定它是否与乘客有关,或者我的位置regexp是不是没有抓住它

ruby-on-rails nginx

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

为什么在Obj-C中发送释放消息后将对象设置为nil

我看到很多Objective-C代码在尝试从不再需要的内存中释放对象时具有以下语法.

[controller release], controller = nil;
Run Code Online (Sandbox Code Playgroud)

为什么在发送释放消息后将变量设置为nil?不管是什么,释放是不是要释放对象?为什么它也需要设置为nil.

这只是在Obj-C中做事的"老派"方式,还是比我意识到的更多?

memory-management objective-c

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

在模块/类之间共享全局记录器

在许多ruby类中共享记录器实例的最佳(正确)方法是什么?

现在我只是将记录器创建为全局$ logger = Logger.new变量,但我觉得有一种更好的方法可以在不使用全局变量的情况下执行此操作.

如果我有以下内容:

module Foo
  class A
  class B
  class C
  ...
  class Z
end
Run Code Online (Sandbox Code Playgroud)

在所有类中共享记录器实例的最佳方法是什么?我是否以某种方式在Foo模块中声明/创建记录器,或者只是使用全局$ logger?

ruby logging global-variables

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

动态更改获取结果控制器的排序描述符

有没有办法在 iOS 上为获取的结果控制器动态设置排序描述符?

例如,我需要根据导航标题栏中分段控件的设置对返回给我的核心数据结果进行排序。用户可以单击分段控件以按价格或优先级排序。

然后,我需要获取的结果控制器返回并显示基于该分段控制值分类为部分的核心数据信息。

我知道最初如何设置排序描述符,但我不确定如何动态更改/更新它。由于该- (NSFetchedResultsController *)fetchedResultsController函数是延迟加载的,它是否总是只返回第一次创建的 frc(从而返回初始排序描述符设置)?

我会做一些事情,比如将分段控件值存储在 sharedPreferences 中,然后在更改时,将我的 fetchedResultsController 设置为 nil 以便生成一个新的?然后在 fetchedResultsController 函数中,我可以根据该 sharedPreferences 设置创建我的 sortDescriptor 吗?

iphone core-data objective-c nsfetchedresultscontroller

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

UITableViewCell并不总是可以选择?

我正在尝试使用新应用调试问题,而且有些事情是不对的.在应用程序中,我通过直接向cell.contentView添加2个UILabel和1个UIImageView来设置自定义UITableViewCells

在我的应用程序中,某些表格视图单元格是不可选择的(它们没有响应点击事件).屏幕上的第二个单元格永远不会被选择,然后随机的其他单元格也是不可选择的.

在我调试的过程中,我删除了以下几个基本代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
  static NSString *CellIdentifier = @"ReviewCell";
  UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
  if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
  }
  cell.textLabel.text = @"foo";
  return cell;
}
Run Code Online (Sandbox Code Playgroud)

即使这是通用的锅炉板代码,如下所示:

并非所有细胞都是可选择的.

我错过了什么?

更新

如果感兴趣,这里更新的是我的行选择代码

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    ReviewWebViewController *rvc = [[ReviewWebViewController alloc] initWithReview:[self.reviews objectAtIndex:indexPath.row]];
    [self.navigationController pushViewController:rvc animated:YES];
    [rvc release], rvc=nil;
}
Run Code Online (Sandbox Code Playgroud)

iphone objective-c uitableview

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

使用 Swift 3 在 Xcode 8 中为 WatchOS 和 iOS 构建嵌入式框架

我正在将最初用 Swift 1 编写的所有 iOS + WatchOS 1 应用程序移植到最新的 Xcode 8、WatchOS 3、Swift 3。

我的应用程序有一个嵌入式框架,其中包含一些常用功能,用于为 watchkit 扩展目标和 ios 应用程序目标编译和运行文件。

使用 Xcode 8,我似乎无法再使用它。当我尝试import使用 watchkit 扩展代码中的框架时,module not found出现错误。

是否仍然可以在目标 iOS 和 WatchKit 扩展目标上编译和使用一个单一的嵌入式框架包?在我的框架中,我将目标平台设置为watchos, watchsimulator, iphoneos, iphonesimulator.

我的直觉说这不可能了。最初所有代码都在手机本身上运行,而不是在实际手表和手机上运行,​​您需要专门为每个代码编译一个嵌入式框架。

xcode ios swift watchkit

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