假设我的乳胶 - 投影仪演示中有一些部分.其中一些部分包含子部分,而另一部分则不包含.所以在目录中看起来很奇怪.
如何抑制目录中的小节?
我正在使用vim-latex-suite而不知道如何跳转到<++>扩展的宏.
例如,在插入模式下键入SSE时,我得到:
/section{}<++>
Run Code Online (Sandbox Code Playgroud)
具体含义是<++>什么?如何移动到那里?
我目前正在玩交易,无法绕过以下场景:
鉴于存在用户名为"johnny"且全名为"John Smith"的用户.
我启动两个rails控制台并按此顺序执行以下命令:
控制台A:
ActiveRecord::Base.transaction { user = User.find_by_username("foo"); sleep 10; user.update_attribute(:full_name, "#{user.full_name}-1"); }
Run Code Online (Sandbox Code Playgroud)
控制台B:
ActiveRecord::Base.transaction { user = User.find_by_username("foo"); sleep 10; user.update_attribute(:full_name, "#{user.full_name}-2"); }
Run Code Online (Sandbox Code Playgroud)
所以时间如下:
读"约翰史密斯"
B读"约翰史密斯"
写道"John Smith-1"
B写道"John Smith-2"
根据我的数据库类事务,B应该无法编写"John Smith-2",因为数据自读取后就已更改.因此,交易应该回滚,交易A应该赢.我希望用户名是"John Smith-1",但结果是"John Smith-2".
任何想法为什么会发生这种情况或如何获得预期的行为?
亲切的问候
尼尔斯
我有一个独立的resque工作队列,并希望使用包含的Web界面监视它,而不涉及任何rails应用程序.
我通过foreman管理我的进程,我的Procfile看起来像这样:
worker: bundle exec rake resque:work
web: bundle exec resque-web --foreground --app-dir /home/xxxx --server thin --port 5678 --no-launch
Run Code Online (Sandbox Code Playgroud)
为web生成的upstart脚本如下所示:
start on starting resque_cmd_runner-web
stop on stopping resque_cmd_runner-web
respawn
env PORT=5100
env PATH='/usr/local/rvm/gems/ruby-2.2.1/bin:/usr/local/rvm/gems/ruby-2.2.1@global/bin:/usr/local/rvm/rubies/ruby-2.2.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/rvm/bin:/usr/local/rvm/gems/ruby-2.2.1/bin:/usr/local/rvm/gems/ruby-2.2.1@global/bin:/usr/local/rvm/rubies/ruby-2.2.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/rvm/bin'
env GEM_PATH='/usr/local/rvm/gems/ruby-2.2.1:/usr/local/rvm/gems/ruby-2.2.1@global:/usr/local/rvm/gems/ruby-2.2.1:/usr/local/rvm/gems/ruby-2.2.1@global'
env QUEUE='*'
env RESQUE_WEB_HTTP_BASIC_AUTH_USER='xxxx'
env RESQUE_WEB_HTTP_BASIC_AUTH_PASSWORD='zzzz'
setuid xxxx
chdir /home/famulus/resque_cmd_runner
exec bundle exec resque-web --foreground --app-dir /home/famulus/resque_cmd_runner --server thin --port 5678 --no-launch
Run Code Online (Sandbox Code Playgroud)
但是,忽略HTTP BASIC AUTH的环境变量.我认为他们只是在resque-web gem中工作,而不是在resque中包含的界面中.
如何为包含的应用程序获取HTTP AUTH?
我正在使用将分页3.0.2和Rails 3.1.0.
以下代码存在于我的控制器中.
@users = User.visible_for(current_user).
includes(:study_courses).
ordered_by_last_name.
page(params[:page]).per_page(20)
Run Code Online (Sandbox Code Playgroud)
在从上面@users分配的部分地方users我做了:
= will_paginate users, previous_label: h("<"), next_label: h(">")
Run Code Online (Sandbox Code Playgroud)
如果有20个用户,它给我6个页面链接,其中第一个页面包含20个用户,第二个页面包含10个用户,当然其余页面包含零个用户.
我无法弄清楚为什么有6个页面链接而不是3个.
更新:弄清楚will_paginate不使用distinct来计算记录.任何想法如何做到这一点?
假设我们进行以下设置:
class Post < ActiveRecord::Base
belongs_to :user
end
class User < ActiveRecord::Base
has_many :posts
end
Run Code Online (Sandbox Code Playgroud)
进一步假设用户有一个布尔属性'admin',表示他是否是全局管理员.
我想为User类编写一个方法(或范围?),称为"visible_posts".如果用户不是管理员,则应该只返回自己的帖子.如果他是管理员,该方法应该返回系统中的所有帖子.
我的第一次尝试是这样的:
class User < ActiveRecord::Base
[...]
def visible_posts
if admin?
Post.all
else
posts
end
end
end
Run Code Online (Sandbox Code Playgroud)
这里的问题是Post.all返回一个数组,但我更愿意拥有一个ActiveRecord :: Relation,就像我从帖子中获取稍后使用它一样.
是否有可能获得代表所有帖子的ActiveRecord :: Relation?
我正在尝试解析这样的 JSON 字符串:
JSON.parse("{'foo' : 42 }")
Run Code Online (Sandbox Code Playgroud)
然而,这会产生一个 JSON::ParseError:
JSON::ParserError: 757: unexpected token at '{'foo' : 42 }'
from /Users/nils/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/json/common.rb:155:in `parse'
from /Users/nils/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/json/common.rb:155:in `parse'
from (irb):2
from /Users/nils/.rvm/rubies/ruby-2.1.2/bin/irb:11:in `<main>'
Run Code Online (Sandbox Code Playgroud)
我认为它期望'角色是一个"角色。由于我有多个 GB 的此类文件,因此我想让解析器使用它。由于某些值可能还包含'字符,因此我不能简单地运行搜索并替换它们,因为这可能会破坏原始内容。
关于如何让 JSON 解析器解析这个的任何建议?
我在我的代码中定义了以下枚举:
public enum Table {
BASE_PRICES("base_prices", Affinity.UPS,
Arrays.asList(
Field.BILLING_WEIGHT_LOWER_BOUND,
Field.BILLING_WEIGHT_UPPER_BOUND,
Field.BASE_PRICE,
Field.SERVICE_TYPE_ID,
Field.ZONE_ID
)),
COUNTRY_CODES("country_codes", Affinity.UPS,
Arrays.asList(Field.COUNTRY_CODE)),
SERVICE_TYPES("service_types", Affinity.UPS,
Arrays.asList(Field.SERVICE_TYPE)),
ZONE_DIVISION("zone_division", Affinity.UPS,
Arrays.asList(
Field.COUNTRY_CODE_ID,
Field.SERVICE_TYPE_ID,
Field.ZONE_ID,
Field.POST_CODE_LOWER_BOUND,
Field.POST_CODE_UPPER_BOUND)),
ZONES("zones", Affinity.UPS,
Arrays.asList(Field.ZONE_CODE));
// used to denote the affinity of a table for
// affinity specific DB cleanup and other stuff.
public enum Affinity {
UPS
}
private String name;
private Affinity affinity;
private List<Field> fields;
private Table(String name, Affinity affinity, List<Field> fields){
this.name = name;
this.affinity = affinity;
this.fields = fields; …Run Code Online (Sandbox Code Playgroud) 尝试通过以下方式启动rails应用程序时出错rails s:
/Users/nils/.rvm/gems/ruby-1.9.3-p429/gems/resque-scheduler-2.0.1/lib/resque/scheduler.rb:9:in `<class:Scheduler>': uninitialized constant Resque::Helpers (NameError)
from /Users/nils/.rvm/gems/ruby-1.9.3-p429/gems/resque-scheduler-2.0.1/lib/resque/scheduler.rb:7:in `<module:Resque>'
from /Users/nils/.rvm/gems/ruby-1.9.3-p429/gems/resque-scheduler-2.0.1/lib/resque/scheduler.rb:5:in `<top (required)>'
from /Users/nils/.rvm/gems/ruby-1.9.3-p429@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:81:in `require'
from /Users/nils/.rvm/gems/ruby-1.9.3-p429@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:81:in `rescue in block in require'
from /Users/nils/.rvm/gems/ruby-1.9.3-p429@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:66:in `block in require'
from /Users/nils/.rvm/gems/ruby-1.9.3-p429@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:in `each'
from /Users/nils/.rvm/gems/ruby-1.9.3-p429@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:in `require'
from /Users/nils/.rvm/gems/ruby-1.9.3-p429@global/gems/bundler-1.3.5/lib/bundler.rb:132:in `require'
from /Users/nils/Uni/Masterarbeit/TweetTracker/config/application.rb:7:in `<top (required)>'
from /Users/nils/.rvm/gems/ruby-1.9.3-p429/gems/railties-4.0.0/lib/rails/commands.rb:76:in `require'
from /Users/nils/.rvm/gems/ruby-1.9.3-p429/gems/railties-4.0.0/lib/rails/commands.rb:76:in `block in <top (required)>'
from /Users/nils/.rvm/gems/ruby-1.9.3-p429/gems/railties-4.0.0/lib/rails/commands.rb:73:in `tap'
from /Users/nils/.rvm/gems/ruby-1.9.3-p429/gems/railties-4.0.0/lib/rails/commands.rb:73:in `<top (required)>'
from bin/rails:4:in `require'
from bin/rails:4:in `<main>'
Run Code Online (Sandbox Code Playgroud)
我在Ruby 1.9.3中使用Rails 4.在我的Gemfile中:
gem 'resque', "~> 2.0.0.pre.1", github: "resque/resque"
gem 'resque-scheduler'
Run Code Online (Sandbox Code Playgroud)
和相应的初始化程序:
# …Run Code Online (Sandbox Code Playgroud) ruby ×3
activerecord ×2
resque ×2
enums ×1
java ×1
json ×1
latex ×1
latex-suite ×1
parsing ×1
scope ×1
transactions ×1
ubuntu ×1
vim ×1