小编Stp*_*tpn的帖子

Rails:在后台进程中Rjb的分段错误,在不在后台时工作正常吗?

我正在运行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

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

从Rails link_to调用jQuery函数

我有一个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)

我知道它不起作用,但我想知道有没有一种简单的方法来实现这种功能?

谢谢!

javascript jquery ruby-on-rails link-to

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

如何在Rails中组织复杂的回调?

我有一个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,并且它可以由函数本身更新,因此函数被重复调用.

总的来说,它引出了我必须为每个回调引入一个新的布尔检查的情况.它有效,但我不认为它优雅.我错过了什么?

ruby-on-rails callback

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

Rails应用程序保持如此多的闲置Puma和Postgres连接是否正常?

我有一个与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)

postgresql ruby-on-rails htop puma

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

Rails单选按钮 - 模型中多列的一种选择

我希望用户为一个型号中的三个选择一个选项.

即我有一个模型视频,可以评为正/负/未知

目前我有三列布尔值(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)

但显然它允许多个选择,而我试图将其限制为只有一个..

该怎么办?

ruby forms ruby-on-rails ruby-on-rails-3

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

Rails自我引用has_many通过自定义连接表命名

围绕以下情况我有些麻烦.

我正在尝试创建一个树结构,在那里我将能够为节点之间的连接提供自定义名称.

所以我想拥有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

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

无法在Mac OS X上启动Homebrew PostgreSQL安装 - "权限被拒绝"

我通过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)

database postgresql macos

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

iOS Corebluetooth服务从未被发现,但在delegate方法的advertisingData中可见

我正在使用带有警报通知服务的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)

objective-c ios core-bluetooth bluetooth-lowenergy

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

将数字除以随机数的随机数?

如果我需要将例如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)

编辑:每个结果数应小于初始数,零数应不小于分区数.

python random math integer-division

4
推荐指数
1
解决办法
3706
查看次数

Android Studio中无法识别路径变量(无法识别ndk-build命令)

我有一个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)

macos path gradle android-ndk android-studio

4
推荐指数
1
解决办法
2841
查看次数