小编phi*_*hil的帖子

将HTML解析为NSAttributedText - 如何设置字体?

我正在尝试获取一个格式为html的文本片段,以便在UITableViewCell中的iPhone上很好地显示.

到目前为止我有这个:

NSError* error;
NSString* source = @"<strong>Nice</strong> try, Phil";
NSMutableAttributedString* str = [[NSMutableAttributedString alloc] initWithData:[source dataUsingEncoding:NSUTF8StringEncoding]
                                                           options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType,
                                                                     NSCharacterEncodingDocumentAttribute: [NSNumber numberWithInt:NSUTF8StringEncoding]}
                                                              documentAttributes:nil error:&error];
Run Code Online (Sandbox Code Playgroud)

这种作品.我得到一些粗体'好'的文字!但是......它还将字体设置为Times Roman!这不是我想要的字体.我想我需要在documentAttributes中设置一些内容,但是,我无法在任何地方找到任何示例.

html nsattributedstring ios

120
推荐指数
11
解决办法
6万
查看次数

获取state_machine状态列表

我们在项目中使用state_machine(https://github.com/pluginaweek/state_machine),并希望提供一个带有select的表单,让我们选择一个州.(这是用于搜索,而不是用于设置).我似乎无法找到列出所有可能状态的方法?当然应该有一种自动执行此操作的方法,而不必在某处硬编码文本列表.谢谢!

ruby-on-rails state-machine

46
推荐指数
3
解决办法
9459
查看次数

在ruby中观看目录

我们有一个应用程序需要处理放入目录的传入文件.我正在寻找最好的方法来做到这一点.

我们一直在使用循环的Backgroundrb过程,但是,说实话,Backgroundrb是不可靠的,如果可能的话,我们想要远离它.

Delayed_job似乎不是用于正在进行的任务,而是用于一次性.

我发现DirectoryWatcher http://codeforpeople.rubyforge.org/directory_watcher/看起来很有前景,但理想情况下我们希望对此有一些控制权,并且能够监控它是否正常运行.

所以要求是:

  • 永远奔跑
  • 按顺序处理文件
  • 是可以监视的
  • 有某种方式重新启动它并确保它正常运行(上帝?)

感谢您的任何意见!这应该不难,我很惊讶我找不到其他人在网上谈论这个,因为我认为在商业应用中这并不罕见.

ruby filesystemwatcher ruby-on-rails

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

宝石只有一台机器上有cronjob吗?

我们大量部署了大约十几台服务器.我们想使用Whenever gem,但我无法想办法说出cron作业应该继续使用哪台机器!我们只希望这些作业在我们执行后台作业的服务器上运行.

有没有办法指定这个?

ruby-on-rails whenever

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

如何在rails 3中没有观察者运行rspec?

我有一个有一些观察者的rails3应用程序.我不能为我的生活弄清楚如何关闭我的rspec测试!

rspec ruby-on-rails-3

12
推荐指数
2
解决办法
3023
查看次数

Ruby 2.6.5 和 PostgreSQL pg-gem 分段错误

从控制台我无法执行任何涉及数据库的操作。我得到一个分段错误。

.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/pg-1.1.4/lib/pg.rb:56: [BUG] Segmentation fault at 0x0000000000000110 ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-darwin18]

它实际上是可能需要数据库的任何操作,包括 MyModel.new。

-- Control frame information ----------------------------------------------- c:0071 p:---- s:0406 e:000405 CFUNC :initialize c:0070 p:---- s:0403 e:000402 CFUNC :new c:0069 p:0016 s:0398 e:000397 METHOD /Users/xxx/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/pg-1.1.4/lib/pg.rb:56 c:0068 p:0107 s:0393 e:000392 METHOD /Users/xxx/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/connection_adapters/postgres

我已经卸载并重新安装了 pg gem。并重建了数据库。并重新启动 PostgreSQL。

我看到其他人在Puma下运行时报告问题,但我的配置在Puma下有效,在console下失败!

为清楚起见编辑:

是的,使用捆绑器。

使用相同的堆栈跟踪rails cbundle exec rails c具有相同的效果(段错误)启动 rails 控制台。

Gemfile.lock 有 pg (1.1.4)

我重新捆绑,指定捆绑路径。堆栈跟踪现在具有该捆绑路径,因此我猜默认情况下捆绑程序使用的是 rbenv 路径。

ruby postgresql ruby-on-rails-6

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

将Jersey记录输出到文件?

我们已经将这些添加到我们的web.xml中:

<init-param>
    <param-name>com.sun.jersey.spi.container.ContainerRequestFilters</param-name>
    <param-value>com.sun.jersey.api.container.filter.LoggingFilter</param-value>
</init-param>
<init-param>
    <param-name>com.sun.jersey.spi.container.ContainerResponseFilters</param-name>
    <param-value>com.sun.jersey.api.container.filter.LoggingFilter</param-value>
</init-param>
Run Code Online (Sandbox Code Playgroud)

哪个在我的开发环境中调试很好,但是,我看不到有关将这些内容记录到测试服务器上的文件的任何示例!我只看到默认是System.out ...而不是如何传入任何东西.

例子很好!谢谢

java logging jersey

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

如何编写一个强大的永无止境的过程?

我已经问了一个关于目录观看的另一个问题,这个问题得到了解答,但问题的另一半是如何在ruby中最好地创建一个永无止境的进程来做到这一点.以下是要求:

  • 永远奔跑
  • 是可监控的(即知道它是上升还是下降)
  • 有某种方式重新启动它并确保它正常运行(上帝?)
  • 使用Capistrano开始/停止(会很好!)

我们看过BackgroundRb,但这看起来有点过时,说实话不可靠!我们看过DelayedJob,但这看起来适合一次性工作(因为一项永无止境的工作似乎阻止任何其他工作完成,因为工作按顺序完成).

我们正在运行一堆构成我们环境的Ubuntu服务器.

有任何想法吗?

ruby ruby-on-rails

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

rails 3缓存:命名路由的到期操作

我的控制器有这个:

caches_action :render_ticker_for_channel, :expires_in => 30.seconds
Run Code Online (Sandbox Code Playgroud)

在我的路线文件中我有这个:

match '/render_c_t/:channel_id' => 'render#render_ticker_for_channel', :as => :render_channel_ticker
Run Code Online (Sandbox Code Playgroud)

在日志文件中我看到:

Write fragment views/mcr3.dev/render_c_t/63 (11.6ms)
Run Code Online (Sandbox Code Playgroud)

我该如何手动过期?我需要从与渲染控制器不同的控制器使其到期,但即使在渲染控制器中,我也无法让它过期正确的东西.

如果我做:

 expire_action(:controller => 'render', :action => 'render_ticker_for_channel', :id => c.id)
Run Code Online (Sandbox Code Playgroud)

我知道了:

Expire fragment views/mcr3.dev/render/render_ticker_for_channel/63 (3.2ms)
Run Code Online (Sandbox Code Playgroud)

如果我做:

expire_action(:controller => 'render', :action => 'render_c_t', :id => c.id)
Run Code Online (Sandbox Code Playgroud)

我知道了:

Expire fragment views/mcr3.dev/render/render_c_t/63 (3.2ms)
Run Code Online (Sandbox Code Playgroud)

这个:

expire_action("render_c_t/#{c.id}")
Run Code Online (Sandbox Code Playgroud)

生产:

Expire fragment views/render_c_t/63 (3.5ms)
Run Code Online (Sandbox Code Playgroud)

我怎样才能让它过期'caches_action'产生的路径?!

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

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

phusion乘客没有看到环境变量?

我们正在为我们的rails 3.0x应用程序运行带有Nginx + Phusion Passenger的ubuntu服务器.

我在测试机器上的/ etc/environment中设置了一个环境变量:

MC_TEST=true
Run Code Online (Sandbox Code Playgroud)

如果我运行一个控制台(捆绑exec rails c)并输出ENV ["MC_TEST"],我看到'true'.但是,如果我在页面上放置相同的代码(<%= ENV ["MC_TEST"]%>),它什么都看不到.那个变量不存在.

这引出了我的问题:

1 - 使用nginx(不是apache SetEnv)将环境变量引入乘客的正确方法是什么?

2 - 为什么乘客没有适当的环境?

ubuntu ruby-on-rails passenger nginx

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