小编Dor*_*ian的帖子

client.c:178:24:错误:调用未声明的函数“rb_tainted_str_new2”;ISO C99 及更高版本不支持隐式函数声明

我试图在 macOS Sonoma 14.2.1 上安装 mysql2 gem 并首先收到错误:

> gem install mysql2
...
ld: library 'zstd' not found
...
Run Code Online (Sandbox Code Playgroud)

然后:

> gem install mysql2 -- --with-ldflags=-L(brew --prefix zstd)/lib
(works fine)
Run Code Online (Sandbox Code Playgroud)

所以实际上我正在做的是(来自另一篇 Stack Overflow 帖子):

> gem install mysql2 -v '0.5.3' -- --with-opt-dir=(brew --prefix openssl) --with-ldflags=-L(brew --prefix zstd)/lib
...
client.c:178:24: error: call to undeclared function 'rb_tainted_str_new2'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
  VALUE rb_sql_state = rb_tainted_str_new2(mysql_sqlstate(wrapper->client));
                       ^
...
Run Code Online (Sandbox Code Playgroud)

我找不到如何解决这个错误


第一个完整日志:

> gem install mysql2
Building …
Run Code Online (Sandbox Code Playgroud)

ruby mysql rubygems ruby-on-rails

3
推荐指数
1
解决办法
661
查看次数

具有 React Context 的当前用户

我想要一种使用 React Context 获取和获取当前用户的方法(不要将 props 传递给我的所有组件)

我尝试使用 React Context 但不明白如何实现const { currentUser, fetchCurrentUser } = useCurrentUser()文档中的类似内容。

authentication reactjs react-context

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

执行 find_by(email: ...) 时标准化电子邮件

我将 a 中的电子邮件地址标准化before_validation,例如:

class User
  before_validation do
    self.email = normalized_email
  end

  def normalized_email
    User.normalize_email(email)
  end
end
Run Code Online (Sandbox Code Playgroud)

但是,例如,我必须User.find_by(email: User.normalize_email(params[:email]))在任何地方执行此操作,今天在尝试查找用户时,我忘记了对电子邮件地址进行标准化,因此我希望自动完成此操作。

理想情况下,我不会覆盖find_by,它适用于所有方法,例如where

我该怎么做?

ruby ruby-on-rails

0
推荐指数
1
解决办法
191
查看次数

Rack::Chunked 已弃用,并将在 Rack 3.1 中删除

当我启动 Rails 应用程序时,我得到:

/Users/dorianmariefr/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/rack-3.0.7/lib/rack/chunked.rb:6:警告:Rack::Chunked已弃用并将在 Rack 3.1 中删除

不知道如何解决这个警告,有什么想法吗?

ruby rake ruby-on-rails

0
推荐指数
1
解决办法
353
查看次数

我可以使用 #to_signed_global_id 获得稳定的签名 ID 吗?

目前我打电话:

Appointment.last.to_signed_global_id.to_s
# => BAh7CEkiCGdpZAY6Bk...27c1175e6e2
Appointment.last.to_signed_global_id.to_s
# => BAh7CEkiCGdpZAY6BkVU....0efc706151feed7178
Run Code Online (Sandbox Code Playgroud)

有没有办法始终返回相同的签名全局 id?

ruby-on-rails

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