我有
Ruby 3.0.4
Rails 6.1.7
pg 1.4.5
postgresql 14.6
Run Code Online (Sandbox Code Playgroud)
这是我的database.yml 文件
development:
adapter: postgresql
encoding: utf8
database: olio_development
username: postgres
password: password
pool: 5
host: 127.0.0.1
port: 5432
gssencmode: disable
Run Code Online (Sandbox Code Playgroud)
当我运行 rake db:create 时,出现以下分段错误
/home/usr/.rvm/gems/ruby-3.0.4/gems/pg-1.4.5/lib/pg/connection.rb:626: [BUG] Segmentation fault at 0x00007fd79729a140
Run Code Online (Sandbox Code Playgroud)
ruby 3.0.4p208(2022-04-12 修订版 3fa771dded)[x86_64-linux]
-- Control frame information -----------------------------------------------
c:0050 p:---- s:0275 e:000274 CFUNC :connect_poll
c:0049 p:0543 s:0271 e:000270 METHOD /home/suganya/.rvm/gems/ruby-3.0.4/gems/pg-1.4.5/lib/pg/connection.rb:626
Run Code Online (Sandbox Code Playgroud)
连接失败。
我已经验证 postgres 正在运行并且位于主机 127.0.0.1 和帖子 5432 上。
请帮我解决这个分段错误?
我有一个表 DinnerItem,其中包含 id、name、project_id、client_id、item_id 和 item_quantity 列。
我想获取数据 group_by item_id 列,该值应该只有 item_quantity 列值的格式
{ item_id1 => [ {item_quantity from row1}, {item_quantity from row2}],
item_id2 => [ {item_quantity from row3}, {item_quantity from row4} ]
}
Run Code Online (Sandbox Code Playgroud)
如何在一个查询中实现它?
OfferServiceModels::DinnerItem.all.select('item_id, item_quantity').group_by(&:item_id)
Run Code Online (Sandbox Code Playgroud)
但这有格式
{1=>[#<DinnerItem id: nil, item_id: 1, item_quantity: nil>, #<DinnerItem id: nil, item_id: 1, item_quantity: {"50"=>30, "100"=>10}>], 4=>[#<DinnerItem id: nil, item_id: 4, item_quantity: {"100"=>5, "1000"=>2}>}
Run Code Online (Sandbox Code Playgroud) 我在提供者模型中有一个 Benefit_type 整数列,它是一个枚举列。
提供者.rb
enum: ['abc', 'bcd']
Run Code Online (Sandbox Code Playgroud)
现在我想迁移到 array_enum
提供者.rb
array_enum: {'abc': 0, 'bcd': 1}
Run Code Online (Sandbox Code Playgroud)
因此,为了适应这一更改,我想将列更改为整数数组。在我的迁移中,
change_column :providers, :benefit_type, :integer, array: true, default: {}, using: "(string_to_array(benefit_type, ','))"
Run Code Online (Sandbox Code Playgroud)
错误:
Caused by:
PG::UndefinedFunction: ERROR: function string_to_array(integer, unknown) does not exist
LINE 1: ...ALTER COLUMN "benefit_type" TYPE integer[] USING (string_to_...
^
HINT: No function matches the given name and argument types. You might need to add explicit
type casts.
Run Code Online (Sandbox Code Playgroud)
还尝试过:
change_column :providers, :benefit_type, :integer, array: true, default: []
Run Code Online (Sandbox Code Playgroud)
错误:
Caused by:
ActiveRecord::StatementInvalid: PG::DatatypeMismatch: …Run Code Online (Sandbox Code Playgroud) 我有一个java集
private Set<String> packageCategories;
Run Code Online (Sandbox Code Playgroud)
它的值为 ['Abc','Def']。我想在 UI 中显示 packageCategories 的值,该值现在显示为 ['Abc','Def'],但我想将其简单地显示为 'Abc', 'Def'。
我试过
String.join(",", packageCategories);
context.put("packageCategories", packageCategories);
Run Code Online (Sandbox Code Playgroud)
我收到编译错误
incompatible types: java.util.Set<java.lang.String> cannot be converted to java.lang.String.
Run Code Online (Sandbox Code Playgroud)
我怎样才能实现这个目标?我在 StackOverflow 中搜索,它有将 List 转换为逗号分隔字符串的答案。但我没有找到任何将 Set 转换为逗号分隔字符串的答案。
以最快的方式将 Set<String> 的内容放入单个字符串并用空格分隔单词中给出的答案?对我不起作用。
PS:我不是JAVA开发人员。
我想找到两个数字(正整数)之间的差异而不返回任何正号或负号.
就像
Diff(2,5) => 3
Diff(5,2) => 3.
Run Code Online (Sandbox Code Playgroud)
并不是
(2 - 5) => -3
Run Code Online (Sandbox Code Playgroud) postgresql ×3
ruby ×2
casting ×1
group-by ×1
java ×1
ruby-3 ×1
set ×1
string ×1
subtraction ×1