小编Bac*_*cko的帖子

如何使用Python动态构建JSON对象?

我是Python新手,我正在玩JSON数据.我想通过向现有JSON对象添加一些键值来动态构建JSON对象.

我试过以下但是得到了TypeError: 'str' object does not support item assignment:

import json

json_data = json.dumps({})
json_data["key"] = "value"

print 'JSON: ', json_data
Run Code Online (Sandbox Code Playgroud)

python json

244
推荐指数
6
解决办法
37万
查看次数

在Ruby on Rails中覆盖setter方法的正确方法是什么?

我正在使用Ruby on Rails 3.2.2,我想知道以下是否是一个"正确"/"正确"/"确定"的方式来覆盖我的类属性的setter方法.

attr_accessible :attribute_name

def attribute_name=(value)
  ... # Some custom operation.

  self[:attribute_name] = value
end
Run Code Online (Sandbox Code Playgroud)

上面的代码似乎按预期工作.但是,我想知道,通过使用上面的代码,将来我会遇到问题,或者至少,我应该在Ruby on Rails上遇到"我应该期待"/"可能发生"的问题.如果这不是覆盖setter方法的正确方法,那么正确的方法是什么?


注意:如果我使用代码

attr_accessible :attribute_name

def attribute_name=(value)
  ... # Some custom operation.

  self.attribute_name = value
end
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

SystemStackError (stack level too deep):
  actionpack (3.2.2) lib/action_dispatch/middleware/reloader.rb:70
Run Code Online (Sandbox Code Playgroud)

ruby setter overriding ruby-on-rails ruby-on-rails-3

172
推荐指数
3
解决办法
8万
查看次数

无法将时间与RSpec进行比较

我正在使用Ruby on Rails 4和rspec-rails gem 2.14.对于我的对象,我想updated_at在控制器动作运行后将当前时间与对象属性进行比较,但由于规范没有通过,我遇到了麻烦.也就是说,鉴于以下是规范代码:

it "updates updated_at attribute" do
  Timecop.freeze

  patch :update
  @article.reload
  expect(@article.updated_at).to eq(Time.now)
end
Run Code Online (Sandbox Code Playgroud)

当我运行上面的规范时,我收到以下错误:

Failure/Error: expect(@article.updated_at).to eq(Time.now)

   expected: 2013-12-05 14:42:20 UTC
        got: Thu, 05 Dec 2013 08:42:20 CST -06:00

   (compared using ==)
Run Code Online (Sandbox Code Playgroud)

如何使规范通过?


注意:我还尝试了以下(注意utc添加):

it "updates updated_at attribute" do
  Timecop.freeze

  patch :update
  @article.reload
  expect(@article.updated_at.utc).to eq(Time.now)
end
Run Code Online (Sandbox Code Playgroud)

但规格仍然没有通过(注意"得到"的价值差异):

Failure/Error: expect(@article.updated_at.utc).to eq(Time.now)

   expected: 2013-12-05 14:42:20 UTC
        got: 2013-12-05 14:42:20 UTC

   (compared using ==)
Run Code Online (Sandbox Code Playgroud)

ruby comparison time rspec ruby-on-rails

113
推荐指数
6
解决办法
4万
查看次数

如何检查一个范围内是否包含一个数字(在一个语句中)?

我正在使用Ruby on Rails 3.0.9,我想检查一个数字是否包含在一个范围内.也就是说,如果我有一个变量,number = 5我想检查1 <= number <= 10并检索一个布尔值,如果该number值包含在该范围内.

我可以这样做:

number >= 1 && number <= 10
Run Code Online (Sandbox Code Playgroud)

但我想在一个声明中这样做.我怎样才能做到这一点?

ruby numbers ruby-on-rails range ruby-on-rails-3

77
推荐指数
4
解决办法
6万
查看次数

我应该在哪个文件夹中放置"全局"共享部分模板?

我正在使用Ruby on Rails 3.0.7,我计划使用部分模板.我的应用程序中的所有类都将使用相同的部分,因此我必须决定在哪里找到所有这些部分.

将"全局"共享部分模板放在lib文件夹中是一个好主意吗?如果不是,选择文件夹的常用做法是什么?有关如何正确命名和加载该文件夹的任何建议?

ruby templates ruby-on-rails dry ruby-on-rails-3

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

在JavaScript"窗口"对象中存储变量是使用该对象的正确方法吗?

(也许)我刚刚通过在JavaScript 对象中"存储"/"保存"变量解决我的问题(如何在从对话框窗口成功提交表单之后更新前端内容?)window.但是,由于我是JavaScript的新手,我有一些疑问,如果在JavaScript window对象中存储/保存变量是使用该对象的"常见"/"正确"方式.是吗?

例如,使用以下代码

$('.trigger').click(function() {
  window.trigger_link = this;
});
Run Code Online (Sandbox Code Playgroud)

是明智的吗?

javascript jquery dom window

42
推荐指数
2
解决办法
6万
查看次数

以条件方式构建哈希

我正在使用Ruby on Rails 3.0.10,我想以条件方式构建一个哈希键\值对.也就是说,如果条件匹配,我想添加一个键及其相关值:

hash = {
  :key1 => value1,
  :key2 => value2, # This key2\value2 pair should be added only 'if condition' is 'true'
  :key3 => value3,
  ...
}
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做并保持代码的"良好"可读性?我"被迫"使用这种merge方法吗?

ruby hash conditional

38
推荐指数
4
解决办法
2万
查看次数

如何将自定义 JS 文件添加到新的 Rails 7 项目中

我创建了新的 Rails 7 项目rails new my_project,但在包含要由 Rails 处理的自定义 JS 文件时遇到问题。

我的“javascript/application.js”

import "@hotwired/turbo-rails"
import "controllers"

import "chartkick"
import "Chart.bundle"
import "custom/uni_toggle"
Run Code Online (Sandbox Code Playgroud)

我的自定义 JS 文件:“javascript/custom/uni_toggle.js”

function uniToggleShow() {
    document.querySelectorAll(".uni-toggle").forEach(e => e.classList.remove("hidden"))
}

function uniToggleHide() {
    console.log("uni toggle hide")
    document.querySelectorAll(".uni-toggle").forEach(e => e.classList.add("hidden"))
}

window.uniToggleShow = uniToggleShow
window.uniToggleHide = uniToggleHide
Run Code Online (Sandbox Code Playgroud)

我在我的布局中使用<%= javascript_importmap_tags %>

和我的“config/importmap.rb”

pin "application", preload: true
pin "@hotwired/turbo-rails", to: "turbo.min.js", preload: true
pin "@hotwired/stimulus", to: "stimulus.min.js", preload: true
pin "@hotwired/stimulus-loading", to: "stimulus-loading.js", preload: true
pin_all_from "app/javascript/controllers", under: "controllers"
Run Code Online (Sandbox Code Playgroud)

javascript ruby-on-rails import-maps ruby-on-rails-7

37
推荐指数
3
解决办法
3万
查看次数

如何使用Capistrano gem种植生产数据库?

我正在使用Ruby on Rails 3.0.9并且我希望播种生产数据库以便添加一些记录而无需重新构建所有数据库(即,不删除所有现有记录但只添加一些尚未存在的记录) .我想这样做是因为需要新数据才能使应用程序正常工作.

因此,由于我正在使用Capistrano gem,我cap -T在控制台中运行命令以列出所有可用命令并知道如何实现我的目标:

$ cap -T
=> ...
=> cap deploy:seed          # Reload the database with seed data.
=> ...
Run Code Online (Sandbox Code Playgroud)

我不确定"使用种子数据重新加载数据库"中出现的"重新加载"这个词.句子.所以,我的问题是:如果我cap deploy:seed在本地机器上的控制台中运行命令,播种过程将删除生产数据库中的所有现有数据,然后填充它,或者该命令只是在我想要的数据库中添加新数据做?

ruby capistrano ruby-on-rails seed ruby-on-rails-3

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

如何存储百分比值?

我正在使用Rails 3.2.2,我想在我的数据库表列中存储处理一个百分比值.你有什么指教一下(例如,什么类型的- ,,:integer ,... -列的我应该设置)?是否有关于存储百分比值的必须/应该知道的警报?:float:decimal

精度应为2(1.99%,50.01%,...).

注意:我读过这篇文章.

ruby mysql database ruby-on-rails ruby-on-rails-3

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