我正在运行Resque后台任务,并在调用使用Rjb的gem时不断出现分段错误.但是,当不在后台运行时,一切正常.这是gem中的一行,导致错误:
def self.rjb_initialize
return if ::Rjb::loaded?
::Rjb::load(nil, self.jvm_args) #THIS IS WHERE THE ERROR TRACES TO
set_java_logging if self.log_file
end
Run Code Online (Sandbox Code Playgroud)
宝石加载.jar文件,你可以看到,但同样,一切都很完美,当不在后台时.什么可能导致问题,是否可以修复它?
ruby-on-rails background-process segmentation-fault ruby-on-rails-3 rjb
我有一个ruby循环,创建一个注释列表..
我想知道在这种情况下我是否可以将jQuery函数附加到Rails link_to helper?
<% @video.phrases.each do |phrase| %>
<div class = "span4" id ="comment" ><%= phrase.content %></div><a id ="ff" ><%= image_tag("ff.png", :size=> "32x32" )%></a>
<% end %>
Run Code Online (Sandbox Code Playgroud)
我希望有类似的东西
<% @video.phrases.each do |phrase| %>
<div class = "span4" id ="comment" ><%= phrase.content %></div><%= link_to (image_tag("ff.png", :size=> "32x32" ), html => {<script>$("#video_div").html('CONTENTS OF HTML');</script>} :remote => true %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
我知道它不起作用,但我想知道有没有一种简单的方法来实现这种功能?
谢谢!
我有一个Rails应用程序,它使用了很多回调...所以我有很多函数被调用:after_create和:after_commit在多个模型中.
我想知道我现在这样做的方式是最好的.
基本上我有以下场景:
Class Parent < ActiveRecord::Base
has_many :children
after_create :first_function
after_commit :last_function
def first_function
if !self.processed?
self.children.create(:name => "Richard The Lion Heart")
self.processed = true
self.save!
end
end
def last_function
if self.processed?
if !self.processing?
self.process
self.save!
self.processing = true
self.save!
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
所以你可以看到整个事情取决于一些奇怪的双布尔检查,因为否则每次更新模型时都会调用second_function,并且它可以由函数本身更新,因此函数被重复调用.
总的来说,它引出了我必须为每个回调引入一个新的布尔检查的情况.它有效,但我不认为它优雅.我错过了什么?
我有一个与Puma服务器和DelayedJob的Rails应用程序.我对它进行了一些负载测试 - 同时发出了多个请求等等.当我看到htop时,我发现了许多让我怀疑美洲狮正在泄漏/没有杀死进程的进程.另一方面,这可能是正常的行为.我确实看到记忆力上升了.
我在Rails配置和2个延迟工作工作者中总共有2个Puma工作者.
有puma经验的人可以确认/放弃我对内存泄漏的担忧吗?
CPU[| 1.3%] Tasks: 54, 19 thr; 1 running
Mem[||||||||||||||||||||||||||||||||||||||||||||||||||||| 746/1652MB] Load average: 0.02 0.03 0.05
Swp[ 0/2943MB] Uptime: 1 day, 12:48:05
1024 admin 20 0 828M 183M 3840 S 0.0 11.1 0:00.00 puma: cluster worker 0: 819
1025 admin 20 0 828M 183M 3840 S 0.0 11.1 0:00.00 puma: cluster worker 0: 819
1026 admin 20 0 828M 183M 3840 S 0.0 11.1 0:02.68 puma: cluster worker 0: 819
1027 admin 20 0 828M 183M …Run Code Online (Sandbox Code Playgroud) 我希望用户为一个型号中的三个选择一个选项.
即我有一个模型视频,可以评为正/负/未知
目前我有三列布尔值(pos/neg/unknown).
这是处理这种情况的最佳方法吗?
这个表格应该是什么样的?
目前我有类似的东西
<%= radio_button_tag :positive, @word.positive, false %>
<%= label_tag :positive, 'Positive' %>
<%= radio_button_tag :negative, @word.negative, false %>
<%= label_tag :negative, 'Positive' %>
<%= radio_button_tag :unknown, @word.unknown, false %>
<%= label_tag :unknown, 'Positive' %>
Run Code Online (Sandbox Code Playgroud)
但显然它允许多个选择,而我试图将其限制为只有一个..
该怎么办?
围绕以下情况我有些麻烦.
我正在尝试创建一个树结构,在那里我将能够为节点之间的连接提供自定义名称.
所以我想拥有Node和Relation模型.每
Node
has_many :relations
Run Code Online (Sandbox Code Playgroud)
每
Relation
has_many :nodes
Run Code Online (Sandbox Code Playgroud)
节点可以是父母或孩子..到目前为止一切都方便,还有吨的例子展示了如何做一个自我指涉的has_many表...问题是,我希望能够给予名称的关系,以便我可以做类似的事情:
relation1 = node1.relations.create(:name => "relation_name", :child => node2)
Run Code Online (Sandbox Code Playgroud)
并在结果得到类似的东西:
relation1.name == "relation_name"
relation1.parent == node1
relation1.child == node2
Run Code Online (Sandbox Code Playgroud)
所有的创作都发生在模型中,如果重要的话,这个活动并没有真正暴露给用户.谢谢!
EDIT2:现在它是如何工作的:
class Node < ActiveRecord::Base
belongs_to :sentence
has_one :parent_relation, :foreign_key => "child_id", :class_name => "Relation"
has_many :child_relations, :foreign_key => "parent_id", :class_name => "Relation"
has_one :parent, :through => :parent_relation
has_many :children, :through => :child_relations, :source => :child
has_many :relations, :foreign_key => "child_id"
has_many :relations, :foreign_key => "parent_id"
class Relation < ActiveRecord::Base …Run Code Online (Sandbox Code Playgroud) model relational-database has-many self-reference ruby-on-rails-3
我通过Homebrew安装了Postgresql,崩溃后我再也无法启动服务器..
如果我做
$ pg_ctl start
Run Code Online (Sandbox Code Playgroud)
我明白了
pg_ctl: no database directory specified and environment variable PGDATA unset
Run Code Online (Sandbox Code Playgroud)
如果我做
$ pg_ctl -D /Library/PostgreSQL/data start
Run Code Online (Sandbox Code Playgroud)
我明白了
pg_ctl: could not open PID file "/Library/PostgreSQL/data/postmaster.pid": Permission denied
Run Code Online (Sandbox Code Playgroud)
一切都工作得很好然后..突然之间,这个.
上面的数据文件夹的权限设置为postgres用户的"Everything"和每个人的"None".
路径看起来很好(在我的〜/ .bash_profile中)
export PATH=/usr/local/bin:$PATH
Run Code Online (Sandbox Code Playgroud) 我正在使用带有警报通知服务的iOS 6 Corebluetooth.
由于某种原因,服务没有显示在外围设备中,但是委托方法中的advertisingData看起来是正确的.
这是委托方法:
(void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI
{
bool ourGuy = NO;
NSLog(@"DATA: %@", advertisementData);
NSArray *keys = [advertisementData allKeys];
for (int i = 0; i < [keys count]; ++i) {
id key = [keys objectAtIndex: i];
NSString *keyName = (NSString *) key;
NSObject *value = [advertisementData objectForKey: key];
if ([value isKindOfClass: [NSArray class]]) {
printf(" key: %s\n", [keyName cStringUsingEncoding: NSUTF8StringEncoding]);
if ([keyName isEqualToString: @"kCBAdvDataServiceUUIDs"] ){
NSArray *values = (NSArray *) value;
for (int …Run Code Online (Sandbox Code Playgroud) 如果我需要将例如7除以随机大小的随机数元素,我该怎么做?
所以有时我会[3,4],有时[2,3,1],有时[2,2,1,1,0,1]?
我想这很简单,但我似乎无法得到结果.这是我试图以代码方式做的事情(不起作用):
def split_big_num(num):
partition = randint(1,int(4))
piece = randint(1,int(num))
result = []
for i in range(partition):
element = num-piece
result.append(element)
piece = randint(0,element)
#What's next?
if num - piece == 0:
return result
return result
Run Code Online (Sandbox Code Playgroud)
编辑:每个结果数应小于初始数,零数应不小于分区数.
我有一个Android Studio项目,它无法识别ndk-build的PATH变量集.
如果我ndk-build从终端运行我得到:
stpns-MacBook-Pro:~ stepanboltalin$ ndk-build
Android NDK: Could not find application project directory !
Android NDK: Please define the NDK_PROJECT_PATH variable to point to it.
/usr/local/Cellar/android-ndk/r10b/build/core/build-local.mk:148: *** Android NDK: Aborting . Stop.
Run Code Online (Sandbox Code Playgroud)
但是如果我尝试在Android Studio中编译项目,我会在'ndk-build'commandLine上得到错误(下面是build.gradle的摘录:
task ndkBuild(type: Exec) {
# some stuff...
if (ant.properties.os == 'windows') {
commandLine 'ndk-build.cmd'
} else {
commandLine 'ndk-build'
}
}
Run Code Online (Sandbox Code Playgroud)
现在如果我添加绝对路径一切正常:
task ndkBuild(type: Exec) {
# some stuff...
if (ant.properties.os == 'windows') {
commandLine 'ndk-build.cmd'
} else {
commandLine '/usr/local/opt/ndk-build'
}
} …Run Code Online (Sandbox Code Playgroud)