我有一系列记录ID ["303", "430", "4321", "5102"].我想使用SQL获取与这些ID匹配的所有记录:
acceptable_ids = ["303", "430", "4321", "5102"]
@users = User.where("is_awesome = true AND id IN acceptable_ids)
Run Code Online (Sandbox Code Playgroud)
给出了这个错误:
ActiveRecord::StatementInvalid (PG::SyntaxError: ERROR: syntax error at or near "["
Run Code Online (Sandbox Code Playgroud)
编写查询以获取所有匹配ID的用户的正确方法是什么acceptable_ids?
注意:
我知道User.find(acceptable_ids),但不能使用它,因为我正在使用select,where和join子句构建SQL查询.
Ruby中的函数不是第一类对象,但我希望能够将对函数的引用传递给另一个函数并让它被执行.如何才能做到这一点?
例:
def run_a_function_twice(my_function)
# Call the function once.
# Call the function again.
end
def say_hello
puts "HI!"
end
run_a_function_twice(say_hello)
Run Code Online (Sandbox Code Playgroud)
我正在阅读文档,但不确定我是否应该尝试lambdas,procs或call(我只熟悉其他语言的调用概念)
如何向现有的 SKSpriteNode 添加纹理?
在文档中,我看到的是一种用纹理初始化 SKNode 的方法,而不是向其添加纹理的方法。
// Creating with a texture is easy.
var mySprite = SKSpriteNode(texture: myTexture)
// But no method for adding a texture.
var anotherSprite = SKSpriteNode()
anotherSprite.texture = myTexture // This is not valid.
Run Code Online (Sandbox Code Playgroud) 我在Ruby中有一个数组:
arr = ["aba", "bab", "abb"]
我想用“ c”替换所有“ a”,然后用分号将元素连接在一起。
# Replace "a" with "c"
replaced_arr = arr.map {|element| element.sub("a", "c") }
# Join with a ";"
joined_string = replaced_arr.join(";")
# "cbc; bcb; cbb"
Run Code Online (Sandbox Code Playgroud)
如何在Rails视图中执行此操作?
做
<%= arr.map(|element| element.sub("a", "c")).join(";") %>给我错误syntax error, unexpected keyword_end, expecting ')'
在Rails中,我有一个User模型。我添加attr_accessor :score了模型。
如果为一个用户呈现JSON,则看不到“得分”属性。为什么是这样?
user = User.find(3)
user.score = 55
render json: user
Run Code Online (Sandbox Code Playgroud) ruby-on-rails attr-accessor ruby-on-rails-4 rails-activerecord
我怎样才能对这个数组进行排序,以便所有哈希optional = true都是最后一个?
my_array = [
{ name: "foo", optional: true },
{ name: "pop" },
{ name: "boop", optional: true },
{ name: "pop", optional: false }
]
Run Code Online (Sandbox Code Playgroud)
我试过这个:
my_array.sort { |a,b| a['optional'] <=> b['optional'] }
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误:
comparison of Hash with Hash failed
Run Code Online (Sandbox Code Playgroud)
错误是令人惊讶,因为做一个["可选"]会返回的值true,false或nil.
注意:
我知道这个解决方案.sort_by { |a| (a['optional'] ? 1 : 0) }.我想sort特别了解这个方法.
我在我的一个组件中监听窗口"滚动"事件.但是,卸载组件时,不会删除滚动事件侦听器.
在卸载组件后发生滚动事件时会产生以下错误:
warning.js:36警告:setState(...):只能更新已安装或安装的组件.这通常意味着您在已卸载的组件上调用了setState().这是一个无操作.请检查TopNavDesktop组件的代码.
如何正确删除此事件侦听器?
示例代码:
class NavBar extends Component {
constructor() {
super();
this.state = {
distanceScrolled: null
}
}
componentDidMount() {
window.addEventListener('scroll', this.handleScroll.bind(this));
}
componentWillUnmount() {
window.removeEventListener('scroll', this.handleScroll.bind(this));
}
handleScroll(e){
const distanceScrolled = e.srcElement.body.scrollTop;
this.setState({ distanceScrolled: distanceScrolled });
}
render { ... }
}
Run Code Online (Sandbox Code Playgroud) 我希望在一个循环中有代码,只有在任何一天的下午5点之前运行.
什么代码会这样做?
IF (current_time < 5:00pm) {
// Do stuff
}
Run Code Online (Sandbox Code Playgroud) 如何将中心<img>放入容纳中<div>?
通常margin-left: auto; margin-right: auto;是行不通的.
图像可以比容器大,并通过max-width和水平或垂直缩放max-height.
以下代码的jsfiddle:http://jsfiddle.net/9ShGj/1/
HTML:
<div class="container">
<img src="http://www.yensa.com/fat/fat-dude10.jpg" />
</div>
<div class="container">
<img src="http://oi43.tinypic.com/bje2wn.jpg" />
</div>
Run Code Online (Sandbox Code Playgroud)
CSS:
.container {
width: 200px;
height: 200px;
background: rgb(120, 120, 120);
border: 1px solid red;
margin: 5px;
}
.container img {
max-width: 200px;
max-height: 200px;
margin-left: auto;
margin-right: auto;
vertical-align: middle;
}
Run Code Online (Sandbox Code Playgroud)