我正在使用 Rails 5.2.3 并收到以下错误:
content_security_policy?类的未定义方法。
查看错误后,我发现它是由于csp_meta_tag布局 application.html.erb而产生的。
那么,它究竟意味着什么,它有什么帮助呢?
我创建了一个名为Useremail的新应用程序,但是当我创建控制器/模型时,它会在终端上抛出错误而不生成控制器/模型.
ac @ ac-HP:〜/ Useremail $ bin/rails g controller用户
/home/ac/.rvm/rubies/ruby-2.6.0/lib/ruby/2.6.0/bundler/rubygems_integration.rb:408:在replace_gem中的块(2级):加载'sqlite3'时出错记录适配器.缺少它依赖的宝石?无法激活sqlite3(〜> 1.3.6),已经激活了sqlite3-1.4.0.
确保将所有依赖项添加到Gemfile.(LoadError)
我的模型有一个has_many_attached :photos.
第一次创建此模型时,它有 0 张照片。如果我跑photos.attached?我得到false。
当用户上传一些文件到照片时,我需要做一些动作,但只是第一次。我尝试使用before_update :if photos.attached?. 但我需要知道用户是否专门更新照片。
有没有办法知道用户是否正在尝试更新照片?或者有没有一种简单的方法可以做到这一点?
我要访问正在呈现 JSON 响应的 URL 端点,但我在 Rails 服务器日志中看到此错误:
\n\n\n于 2019-07-08 22:39:43 +0530 开始 GET "/sw.js" for ::1
\n\nActionController::RoutingError(没有路由匹配 [GET]“/sw.js”):
\n\nactionpack (5.2.3) lib/action_dispatch/middleware/debug_exceptions.rb:65:in \'call\'
\n web-console (3.7.0) lib/web_console/middleware.rb:135:in \'call_app\'
\n Web 控制台 (3.7.0) lib/web_console/middleware.rb:30:in \'阻止调用\'
\n Web 控制台 (3.7.0) lib/web_console/middleware.rb:20:in \ 'catch\'
\n web-console (3.7.0) lib/web_console/middleware.rb:20:in \'call\' \
n actionpack (5.2.3) lib/action_dispatch/middleware/show_exceptions.rb:33:在\'call\'
\nrailties(5.2.3)lib/rails/rack/logger.rb:38:在\'call_app\'
\nrailties(5.2.3)lib/rails/rack/logger.rb: 26:在“呼叫中的块”\
n activesupport(5.2.3)lib / active_support / tagged_logging.rb:71:在“标记中的块”
\ n activesupport(5.2.3)lib / active_support / tagged_logging。 rb:28:在\'tagged\'
\n activesupport (5.2.3) lib/active_support/tagged_logging.rb:71:在\'tagged\'
\n Railties (5.2.3) lib/rails/rack/logger。 rb:26:in …
我有两个Person型号Address:
class Person < ApplicationRecord
has_one :address
end
Run Code Online (Sandbox Code Playgroud)
class Address < ApplicationRecord
belongs_to :person
end
Run Code Online (Sandbox Code Playgroud)
我如何验证每个点都指向另一个?
我想做类似的事情:
class Person < ApplicationRecord
has_one :address
validates :address, presence: true
end
Run Code Online (Sandbox Code Playgroud)
当然,这不起作用,因为address不是 上的属性Person。
Rails 中确保一条记录与另一条记录有效关联的正确方法是什么?
我想编写一个电报机器人,因此当我要接收来自用户的消息时,我应该知道他/她发送给我的最后一条消息以及他/她位于哪个步骤。所以我应该存储用户的会话(我在搜索时理解了这一点),但我不知道我到底应该做什么?
我知道我需要在数据库中存储 UserId、ChatId 的表,但我不知道这些:
如何为步骤创建根并将它们存储在数据库中(我的意思是如何了解用户现在所在的位置)
我还需要将哪些列存储为会话?
我应该在数据库中存储多少条消息?每条消息都需要一行吗?
昨天我们在临时站点上遇到了这个错误,错误ActionController::UnknownFormat发生在users/sessions#new. 这是Bugsnag显示的请求:
headers: {
"Version": "HTTP/1.0",
"Host": [Our site's IP],
"X-Forwarded-Proto": "https",
"X-Forwarded-For": "128.14.209.154",
"Connection": "close",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36",
"Accept": "../../../../../../../../../../etc/services{{",
"Accept-Encoding": "gzip"
}
httpMethod: GET
params: {
"controller": "users/sessions",
"action": "new"
}
railsAction: users/sessions#new
referer: null
requestId: 6ecd71ba-31c8-4d55-9199-8e45e3d86246
url: [Our site's IP]
user_id: 128.14.209.154
Run Code Online (Sandbox Code Playgroud)
没有人真正知道发生了什么,据我们所知,目前没有人在该网站上做任何事情。
有几件事让我觉得很奇怪:
Accept在标题中:“接受”:"../../../../../../../../../../etc/services{{"user_id: 128.14.209.154User-Agent,特别是这样的:(Windows NT …