小编Tia*_*ago的帖子

ARM64 架构(M1 芯片):无法安装 pg gem(使用 PostgresApp)

我一直在尝试在运行 Big Sur 的计算机(带有 M1 的 Macbook Pro 2020)上安装一个 rails 项目。

我安装了 PostgresApp。

运行时bundle install它无法构建pggem,所以我尝试手动安装 gem(通过这样做gem install pg- 也尝试使用gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/10/bin/pg_config)。

我收到一条错误消息:

ERROR:  Error installing pg:
ERROR: Failed to build gem native extension.

Can't find the PostgreSQL client library (libpq)
*** extconf.rb failed ***
Run Code Online (Sandbox Code Playgroud)

检查错误日志时,我看到:

have_library: checking for PQconnectdb() in -lpq... -------------------- no

ld: warning: ignoring file /Applications/Postgres.app/Contents/Versions/13/lib/libpq.dylib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64 …
Run Code Online (Sandbox Code Playgroud)

rubygems ruby-on-rails pg postgresapp apple-silicon

6
推荐指数
3
解决办法
2857
查看次数

如何在Ruby中使用Nokogiri迭代XML嵌套元素

我正试图用Nokogiri迭代XML格式的文件夹结构,但我陷入了困境:

<test>
   <folder name="Folder A">
      <folder name="Folder A1">
         <file name="a.txt">Cool file</file>
      </folder>
      <folder name="Folder A2"></folder>
   </folder>
   <folder name="Folder B">
      <folder name="Folder B1"></folder>
      <folder name="Folder B2">
         <folder name="Folder B21">
            <file name="b.txt"></file>
         </folder>
   </folder>
</test>
Run Code Online (Sandbox Code Playgroud)

因此,我想迭代这个以便能够创建文件夹和文件树(文件夹A1和A2在文件夹A内,文件夹B1和B2在文件夹B内,文件夹B21在文件夹B2内).

所以我这样做:

nodes = allnodes.xpath('//folder')
nodes.each do |node|
  puts "name => #{node.attributes['name']}"
end
Run Code Online (Sandbox Code Playgroud)

但这列出了我所有的文件夹(A,A1,A2,B,B1,B2,B21).我怎么能这样做,以便我不检查以前的文件夹中的更多文件夹,然后我将它发送到相同的递归函数?

非常感谢您的帮助 :)

ruby xml xpath iterator nokogiri

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

在Swing中,如何在进行某些处理时重新绘制标签?

我是Swing的新手,我试图这样做:

在按下JButton时,程序将开始迭代数百个项目,每个项目处理1秒钟,在完成每个项目后,他应该更新标签以显示已经处理的项目数量.

问题是,在循环完成迭代所有项目之前,标签的文本不会更新.

我在网上搜索,显然这是因为它在同一个线程中运行,所以我创建了一个新线程来处理数据并更新要在标签中使用的变量(已处理文件的数量).

但它没有用.然后我甚至创建了另一个线程,我在前一个线程之后开始,只重新绘制标签.仍然没有任何作用

代码是这样的:

btnNewButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            try { SwingUtilities.invokeLater(validateFiles); } 
}); }

Runnable validateFiles = new Runnable() {

    @Override
    public void run() {
                 while(x_is_not_100) {
                      processLoadsOfStuff();
                      label.setText(x); }
            }
};
Run Code Online (Sandbox Code Playgroud)

你能帮帮我吗?

java swing repaint

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

ActiveAdmin Globalize 创建索引过滤器

我正在使用 Globalize 和 ActiveAdmin,我现在已经从ActiveAdminGlobalize 的一个分支安装了一个 gem

自述文件中描述的所有内容都在工作,但我想向 Active Admin Index 添加一个过滤器。

所以,对于模型 stuff.rb

class Stuff < ApplicationRecord
  translates :name
  active_admin_translates :name do
    validates_presence_of :name
  end
end
Run Code Online (Sandbox Code Playgroud)

和班级 app/admin/stuff.rb

ActiveAdmin.register Stuff do
  index do
    translation_status
    column :name 
  end

  filter :name

end
Run Code Online (Sandbox Code Playgroud)

如何使过滤器 :name 起作用?

谢谢

ruby ruby-on-rails activeadmin globalize

2
推荐指数
1
解决办法
393
查看次数