我有一个Phrase类has_many Phrase的Translation.
class Phrase < ActiveRecord::Base
has_many :translatabilities
has_many :translations, through: :translatabilities
has_many :inverse_translatabilities, class_name: "Translatability", foreign_key: "translation_id"
has_many :inverse_translations, through: :inverse_translatabilities, source: :phrase
accepts_nested_attributes_for :translatabilities
end
Run Code Online (Sandbox Code Playgroud)
class PhrasesController < ApplicationController
def index
@phrases = Phrase.all.page params[:page]
@translations = @phrases.count.times.map do |i|
translation = Phrase.new
translation.translatabilities.build
translation
end
end
end
Run Code Online (Sandbox Code Playgroud)
我想为每个"短语"添加"可译性"形式.
<table>
<tbody>
<% @phrases.each do |phrase| %>
<tr>
<td><%= phrase.text %></td>
</tr>
<tr>
<td>
<%= form_for @translations …Run Code Online (Sandbox Code Playgroud) 我可以使用数值Array#count.
numbers = [1, 2, 5, 5, 1, 3, 1, 2, 4, 3]
numbers.count(1) #=> 3
Run Code Online (Sandbox Code Playgroud)
如何计算数组中的多个值?
我写的是:
numbers.count(1) + numbers.count(2) #=> 5
[1,2].map{|i| numbers.count(i)}.sum #=> 5
Run Code Online (Sandbox Code Playgroud)
我认为这些有点多余.
我正在尝试使用,所以我从官方文档chartjs中复制了示例代码,如下所示。
<canvas id="myChart" width="400" height="400"></canvas>
<script>
var data = {
labels : ["January","February","March","April","May","June","July"],
datasets : [
{
fillColor : "rgba(220,220,220,0.5)",
strokeColor : "rgba(220,220,220,1)",
pointColor : "rgba(220,220,220,1)",
pointStrokeColor : "#fff",
data : [65,59,90,81,56,55,40]
},
{
fillColor : "rgba(151,187,205,0.5)",
strokeColor : "rgba(151,187,205,1)",
pointColor : "rgba(151,187,205,1)",
pointStrokeColor : "#fff",
data : [28,48,40,19,96,27,100]
}
]
}
//Get the context of the canvas element we want to select
var ctx = document.getElementById("myChart").getContext("2d");
var myNewChart = new Chart(ctx).PolarArea(data);
new Chart(ctx).Line(data);
</script>
Run Code Online (Sandbox Code Playgroud)
示例: http: …
如何通过厨师将多个成员添加到组中?
我试过这样,但它失败了.
group "git" do
action :modify
members "foo, bar"
append true
end
Run Code Online (Sandbox Code Playgroud)
我可以这样做,但members似乎接受了多个用户.我怎么用呢?
%w(foo bar).each do |m|
group "git" do
action :modify
members m
append true
end
end
Run Code Online (Sandbox Code Playgroud) 我有一系列像这样的哈希:
[ {:foo=>2, :date=>Sat, 01 Sep 2014},
{:foo2=>2, :date=>Sat, 02 Sep 2014},
{:foo3=>3, :date=>Sat, 01 Sep 2014},
{:foo4=>4, :date=>Sat, 03 Sep 2014},
{:foo5=>5, :date=>Sat, 02 Sep 2014}]
Run Code Online (Sandbox Code Playgroud)
如果:date相同,我想合并哈希.我对上面数组的期望是:
[ {:foo=>2, :foo3=>3, :date=>Sat, 01 Sep 2014},
{:foo2=>2, :foo5=>5 :date=>Sat, 02 Sep 2014},
{:foo4=>4, :date=>Sat, 03 Sep 2014}]
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
也许我应该重新考虑数据结构本身?例如,我应该使用date值作为哈希的键吗?
我想在 Rails 的 pry 控制台中使用类似 grep 的函数。例如,当我有这样的模型时:
pry(main)> show-model Post
Company
id: integer
title: string
author: string
content: text
created_at: datetime
updated_at: datetime
Run Code Online (Sandbox Code Playgroud)
我想过滤输出,如:
pry(main)> show-model Post --grep "string"
title: string
author: string
Run Code Online (Sandbox Code Playgroud)
或者
pry(main)> show-model Post --grep "content"
content: text
Run Code Online (Sandbox Code Playgroud)
似乎 pry 中有一个命令--grep选项ls。我找不到与show-model命令类似的功能。有办法做到吗?
有.mp4我要转换的文件.
$ find . -name '*.mp4'
./01.mp4
./02.mp4
./03.mp4
Run Code Online (Sandbox Code Playgroud)
我希望输出文件copy-01.mp4,copy-02.mp4并copy-03.mp4使用此命令.
find . -name '*.mp4' -exec ffmpeg -i {} -c copy -aspect 16:9 copy-{} ";"
Run Code Online (Sandbox Code Playgroud)
但它失败了,错误Unable to find a suitable output format for 'copy-'.我以为{}代表文件名,不是吗?
使用-exec选项时如何使用原始文件名find?
该find版本是:
$ find --version
find (GNU findutils) 4.4.2
Copyright (C) 2007 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: …Run Code Online (Sandbox Code Playgroud) 我有一个类Company是include GrowthRate.
class Company < ActiveRecord::Base
include GrowthRate
end
Run Code Online (Sandbox Code Playgroud)
在growth_rate.rb,我添加了一些方法Array.
module Company::GrowthRate
extend ActiveSupport::Concern
end
module Company::GrowthRate::Array
def growth_rate
# calculate growth rate
end
end
class Array
include Company::GrowthRate::Array
end
Run Code Online (Sandbox Code Playgroud)
我想通过MiniTest测试Array的方法.
require 'test_helper'
class CompanyTest < ActiveSupport::TestCase
include Company::GrowthRate
test 'test for adjusted_growth_rate' do
array = [1, 0.9]
Array.stub :growth_rate, 1 do
# assert_equal
end
end
end
Run Code Online (Sandbox Code Playgroud)
但测试最终会出现名称错误.
NameError: undefined method `growth_rate' for `Company::GrowthRate::Array'
Run Code Online (Sandbox Code Playgroud)
如何包含MiniTest的方法?
我如何stub在 中使用方法setup?我只找到了stub像这样的with 块:
class FooTest < ActiveSupport::TestCase
test 'for_something' do
Foo.stub :some_method, 3 do
#assert_equal
end
end
end
Run Code Online (Sandbox Code Playgroud)
但我想存根所有测试。我怎样才能存根?