X



Ruby 初心者スレッド Part 66
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん (ワッチョイ 2a2c-RM0q)
垢版 |
2020/01/04(土) 01:15:34.30ID:X7t3Qsuc0
プログラミング言語 Rubyについての、初心者向けスレです。質問・要望・雑談などをどうぞ

質問するときは、OSやRubyのバージョン、エラーメッセージを書いて下さい。
Ruby on Rails については、WEBプログラミング板で

前スレ
Ruby 初心者スレッド Part 65
https://mevius.5ch.net/test/read.cgi/tech/1545421414/

るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/

Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/

逆引きRuby
http://www.namaraii.com/rubytips/

Ruby コミュニティ公式
https://www.ruby-lang.org/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
0535デフォルトの名無しさん (ワッチョイ 275f-8Kp1)
垢版 |
2020/05/23(土) 20:20:01.68ID:x0bVPHOi0
>>534
# gem install benchmark_driver
require 'benchmark_driver'

Benchmark.driver do |x|
x.prelude %{ input = (1..2_000_000).to_a.shuffle
RUBY
x.report 'push without size', %{o = []; input.each{|x| o.push x }}
x.report '[]= with size (each_with_index)', %{o = Array.new(input.size); input.each_with_index{|x,ix| o[ix] = x }}
x.report '[]= with size (each)', %{o = Array.new(input.size); i=0; input.each{|x| o[i] = x;i+=1 }}
x.report 'block with size', %{o = Array.new(input.size){|x| input[x] }}
end
0536デフォルトの名無しさん (ワッチョイ 275f-8Kp1)
垢版 |
2020/05/23(土) 20:21:25.63ID:x0bVPHOi0
prelude書き換えてる最中に送信してしまった
x.prelude %{ input = (1..2_000_000).to_a.shuffle }


Comparison:
block with size: 12.0 i/s
[]= with size (each): 9.7 i/s - 1.23x slower
push without size: 8.9 i/s - 1.35x slower
[]= with size (each_with_index): 7.6 i/s - 1.58x slower
0537デフォルトの名無しさん (ワッチョイ 5a01-S/TN)
垢版 |
2020/05/23(土) 21:52:02.03ID:KnmbZWpz0
>>535
そのwith sizeとwithout sizeはpushの差では?

require 'benchmark_driver'

Benchmark.driver do |x|
x.prelude %{ input = (1..2_000_000).to_a.shuffle }
x.report 'Array.new(0)', %{o = Array.new(0); input.each{|x| o.push(x+1)}}
x.report 'Array.new(input.size)', %{o = Array.new(input.size); input.each{|x| o.push(x+1)}}
x.report 'init with []', %{o = []; input.each{|x| o.push(x+1)}}
x.report 'input.map', %{o = input.map{|x| x+1}}
x.report 'block with size', %{o = Array.new(input.size){|x| input[x]+1 }}
end

pushを使うようにすれば
要素数分のinitializeが必要なArray.new(input.size)が
高い確率で一番遅くなる
0540デフォルトの名無しさん (ワッチョイ 5a01-S/TN)
垢版 |
2020/05/24(日) 01:01:16.27ID:uX1h9ngP0
>>539
あらら、そうだね
これで比べればいいのかな?

Benchmark.driver do |x|
x.prelude %{ input = (1..2_000_000).to_a.shuffle }
x.report 'Array.new(0) + while + indexer', %{o = Array.new(0); i=0; while(i<input.size); o[i] = input[i]+1; i=i+1; end}
x.report 'Array.new(size) + while + indexer', %{o = Array.new(input.size); i=0; while(i<input.size); o[i] = input[i]+1; i=i+1; end}
x.report 'Array.new(0) + while + <<', %{o = Array.new(0); i=0; while(i<input.size); o << input[i]+1; i=i+1; end}
x.report 'Array.new(size) with block', %{o = Array.new(input.size){|x| input[x]+1 }}
end
0542デフォルトの名無しさん (ワッチョイ 4e2c-5qFb)
垢版 |
2020/05/25(月) 16:59:48.64ID:gis+qwRr0
2020年6月30日
Ruby on Rails 製の、mstdn.jp・mastodon.cloud がサービス終了

女子プロレスラーの自殺により、
今後、イジメに対応するコストの上昇で、運営できなくなるとか
0544デフォルトの名無しさん (ワッチョイ 4d2c-LApo)
垢版 |
2020/06/03(水) 11:38:50.17ID:vinsTjyH0
Railsコースリリース!業界最安値で自走力が身につくワケを制作者が語る
ttps://www.youtube.com/watch?v=zY9SfGNt0pc

東京フリーランスのとだこうきが、Rails の3か月コースを作った!
9万円!
0547デフォルトの名無しさん (ワッチョイ 4d2c-LApo)
垢版 |
2020/06/04(木) 22:02:40.64ID:hC0MsN2x0
漏れは、Windows 10, WSL, Ubuntu 18.04 で、
VSCode の拡張機能、Remote WSL でアクセスしてる

Linux側には、build-essential などのコンパイルツールを入れて、
日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を入れた

yarn は、Windows側に入れて、WSL から、拡張子なしのyarn コマンドを呼べる。
これは、#!/bin/sh で始まるシェルスクリプト
0553デフォルトの名無しさん (ワイーワ2 FFf2-B5RW)
垢版 |
2020/06/09(火) 09:45:37.77ID:sE3YfRh/F
>>550
csc.exe と必要なライブラリだけ集めれば makefile で出来る
0557デフォルトの名無しさん (ワッチョイ 632c-aH+M)
垢版 |
2020/06/11(木) 02:39:40.64ID:J++l+lJF0
ary = "abc".each_char.inject( [ ] ) do |ary, char|
if ary.length == 0
ary.push char
else
ary.push( ary.last + char )
end
end

p ary #=> ["a", "ab", "abc"]
0562デフォルトの名無しさん (ワッチョイ 6f0e-jP3R)
垢版 |
2020/06/13(土) 21:43:36.97ID:v5FJ4AgU0
rbenvでインストールしてglobalに設定したのにruby -vでコマンドが見つかりませんって出る
rbenv経由でruby入れたときってrubyパス個別に通す必要あったっけ?
VMはubuntu2004使ってる
0566496 (ワッチョイ 632c-aH+M)
垢版 |
2020/06/13(土) 23:34:58.27ID:V91HObFW0
>>496
に書いておいた

漏れは、Windows 10, WSL, Ubuntu 18.04 で、
Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を入れた

anyenv を推奨する。asdf もあるけど、
中を見たら、結局そのまま各言語の、*env を使っているものもあるみたい
0567496 (ワッチョイ 632c-aH+M)
垢版 |
2020/06/13(土) 23:41:18.09ID:V91HObFW0
多言語の場合、anyenv, asdf を使わないと、各言語ごとにやらないといけないので面倒。
これらを使うと、rbenv, nodenv, pyenv, phpenv など、多言語を統一的に扱える

特に、Rails では、Node.js が必須だから、これらを使うべき

知らないけど、phpenv を使うと、すべてコピーされるから、
端末の起動が遅くなったとか、書いているサイトもある
0571デフォルトの名無しさん (ワッチョイ b761-QR+y)
垢版 |
2020/06/18(木) 01:58:25.31ID:6O5cmfAx0
調査によるが、Javaは未だに物凄く利用者数の多い言語。

日本のWeb系だと、JS>Java>Ruby>PHP>・・・位だったかな。
全体だと、
JS>Python>Java>C++>C#>C>Ruby
位だったかな。
0576◆QZaw55cn4c (NZ 0H12-igpC)
垢版 |
2020/06/19(金) 21:28:00.42ID:nu2GLxXtH
>>571
PHP の地位が低すぎる
PHP はダントツにあがってもいいほどだ、wikipedia も PHP
0581デフォルトの名無しさん (アウアウウー Sad3-Owb/)
垢版 |
2020/06/28(日) 15:54:16.53ID:mQb8yLJ0a
progateのrailsのコンテンツで以下のようなコードがありました。

<%= form_tag("/posts/create") do %>

<textarea></textarea>
<input type="submit" value="投稿">

<% end %>

form_tagメソッドはなぜ<%= %>で囲わなければ行けないのでしょうか?

以下のように理解していますが。

「<% 〜 %>または<%= 〜 %>の違いは何でしょうか。
どちらも中に記述されたRubyコードが実行されるのですが、
<%= 〜 %>の方は実行された結果を評価し、文字列として出力します。」

<%= form_tag("/posts/create") do %>の行は何も文字列として出力していないと思いますが。
0582デフォルトの名無しさん (ワッチョイ 8f63-UxRf)
垢版 |
2020/06/28(日) 18:31:09.43ID:VdXbwnMJ0
お気に入り数を増やすAPIを作っているんですが、1つづつ増やすのは以下でできたんですが、
変数で一気に10個ずつとか増やしたい場合どう書いたらいいでしょうか
Photo.where('id = ?', params[:id]).update_all("favorite_count = favorite_count + 1")
0583デフォルトの名無しさん (ワッチョイ 7fbb-OVGN)
垢版 |
2020/06/28(日) 18:56:04.59ID:0dkV5Fxh0
>>582
コピペですまないものは全て一行ずつここで聞きながらプログラムを書く気かいな
何を作りたいのか知らんが、クラウドソーシングサイトで5000円でも払って作ってもらえよ
0584デフォルトの名無しさん (ワッチョイ 8f63-UxRf)
垢版 |
2020/06/28(日) 18:59:25.47ID:VdXbwnMJ0
>> 583
わからないならレスしないでください。うざいだけです
0585デフォルトの名無しさん (ワッチョイ 7fbb-OVGN)
垢版 |
2020/06/28(日) 19:13:24.62ID:0dkV5Fxh0
>>584
そんなら他の言語に行けよ
Ruby界に高卒はいらないよ
0590デフォルトの名無しさん (ワッチョイ 3f01-0Hhk)
垢版 |
2020/06/28(日) 21:26:16.13ID:pODeKu4C0
>>582
散々な言われよう

Active Recordを使ってDBの値をインクリメントする際
増分を指定するにはどうすればいいですか?
って質問なのかもしれないが

Acrive Record風のAPIを自作してて
インクリメントする場合はどういうAPIにするのがいいですか?
って質問に見えるから、ちょっと何言ってるんだろうってなる
0591デフォルトの名無しさん (ワッチョイ 8f63-UxRf)
垢版 |
2020/06/28(日) 22:01:58.57ID:VdXbwnMJ0
もうできたわ。役に立たないカス共が
0594デフォルトの名無しさん (ワッチョイ 8f63-UxRf)
垢版 |
2020/06/28(日) 23:17:47.40ID:VdXbwnMJ0
ここなんでこんなイライラしてる人多いんだ
プログラミングスクールに大金つぎ込んで未経験から異業種転職を試みたが
結局うまく就職できなかった奴が暴れてんのか
0595デフォルトの名無しさん (ワッチョイ cf2c-wMgy)
垢版 |
2020/06/29(月) 00:43:51.63ID:ze6DZkOI0
>当スレに★Python以外のプログラミング言語での回答類を書くべからず★
>「Ruby では」「Rubyでは」「某言語では」をNGワード登録推奨

テンプレを書き換えたり、すべてのスレを荒らしている荒らしがいる

荒らしは、必ず2回以上書き込む。
前のレスに「そうだよねー」みたいに、アンカーを付けて、複数人いるように見せかける

だから、荒らしの相手をしないように!
荒らしが喜ぶので、荒らしの相手をする者も、荒らしと認定されます!
0598デフォルトの名無しさん (ワッチョイ 3f52-RSi0)
垢版 |
2020/06/29(月) 09:08:37.94ID:L39gVdue0
>>594
ここまで読んでみたところ、イライラしてるのはお前さんだけでないの?
まあ初心者の訳分からない質問に不寛容なのが多いのは確かだけど、>>584みたいなレスしちゃったら誰もまともに相手しようなんて思わないぞw
0599595 (ワッチョイ cf2c-wMgy)
垢版 |
2020/06/29(月) 10:38:59.75ID:ze6DZkOI0
すべてのスレで、荒らしが書き込んでいるだけ。
それを知らない香具師が、ムキになって怒るのが面白いから、荒らしが居着いている

荒らしを無視すればよい

荒らしはプログラマーじゃないし、ソースコードを書いたりできない。
今までに、1度も見たことない
0602デフォルトの名無しさん (ワッチョイ 812c-WQpp)
垢版 |
2020/07/24(金) 00:27:00.70ID:So4dssPK0
>>2
パーフェクト Ruby on Rails 【増補改訂版】 (Perfect series)、2020/07/25

Ruby 2.6.6
Rails 6.0.3

Windows 10 では、WSL 2
0605デフォルトの名無しさん (ワッチョイ 8bbb-KdZo)
垢版 |
2020/07/26(日) 17:07:40.93ID:rQ/Jznn00
このところ、悪徳商法っぽいRuby教材屋が目立つな
0606デフォルトの名無しさん (ワイーワ2 FF63-keh3)
垢版 |
2020/07/27(月) 10:58:24.12ID:vNtx9fDhF
reverse() と reversed() って違うメソッドなの?
0607デフォルトの名無しさん (ワッチョイ 8bbb-KdZo)
垢版 |
2020/07/27(月) 19:41:14.37ID:hN1elWPu0
そら違うわ
0608デフォルトの名無しさん (ワッチョイ 137c-a4SN)
垢版 |
2020/07/27(月) 22:22:40.84ID:2I3xUck90
頭悪くてプログラムしかできなかった大企業CEO一覧
http://re-file.com/18k/1677/
0609デフォルトの名無しさん (ワッチョイ 8b14-nUry)
垢版 |
2020/07/27(月) 22:30:54.33ID:3jtmTLJJ0
>>608
本当の内容

【メキシコ】麻薬カルテル、ライバル組織の女を拘束、手足を縛り生きたまま解体 - 18禁グロ

▼カテゴリ - 18禁グロには一部、異様・奇怪・猟奇的・暴力シーン・グロテスクな表現が含まれていますので、閲覧制限をしています。

1. 18歳未満は閲覧禁止です。
2. 耐性が無い方は閲覧しないでください。
3. 閲覧は自己責任でお願い致します。

※上記、18歳以上で同意できる方は入室してください。
0611デフォルトの名無しさん (テテンテンテン MM8b-lmhp)
垢版 |
2020/08/06(木) 14:59:04.20ID:wG3o2yHhM
>>610
Railsは開発者に一貫性の高い開発スイートとワークフローを提供するというコンセプトではあるけど、
それ以前にWeb開発のスタンダードから外れてはいけないというのが大前提だ
いくらRailsの思想に合わなかろうが、たとえばMSのClassic ASP.NETみたいな標準をガン無視した独自路線へ行くのは絶対NG
でRuby自体がもはやWebのスタンダードではなくなりつつある今、大きな歪みが生じているわけだ
0614デフォルトの名無しさん (ワッチョイ a935-GKXO)
垢版 |
2020/08/09(日) 19:19:40.37ID:En2E3W9T0
NokogiriのTutorialsを見てます。

html_doc = Nokogiri::HTML("<html><body><h1>Mr. Belvedere Fan Club</h1></body></html>")

このコードでHTMLモジュールのparseメソッドが呼び出せる様なのですが、なぜモジュール名の後にカッコを付ければ、parseメソッドが呼び出せるのでしょう?

HTMLメソッドが定義してあって、その中でparseメソッドが呼び出されているのでしょうか?
0615デフォルトの名無しさん (ワッチョイ a935-GKXO)
垢版 |
2020/08/09(日) 19:26:01.08ID:En2E3W9T0
>>614
module Nokogiri
def HTML(s)
puts s
end
module_function :HTML

end

Nokogiri::HTML("module OK") # => module OK

なんと、HTMLメソッドが定義されてました。
0616デフォルトの名無しさん (ワッチョイ a935-GKXO)
垢版 |
2020/08/09(日) 19:45:48.04ID:En2E3W9T0
[スクレイピングのためのNokogiri利用メモ - それはそれ、これはこれ](http://otn.hatenablog.jp/entry/20090509/p1)

クラス構造の理解:Nokogiri
0619デフォルトの名無しさん (ワッチョイ ebbb-VtC7)
垢版 |
2020/08/09(日) 23:52:58.94ID:wetuPPrU0
Railsがマイクロサービスが流行って廃れたようなことを言う人もいるけどさ
サーバ側でセッション情報を保持しないのが主流になった時点でもう、重量級フレームワークは終わりだったんじゃないのかな
0620デフォルトの名無しさん (ワッチョイ a935-GKXO)
垢版 |
2020/08/11(火) 07:39:46.13ID:a9fFSUGp0
>>614
NokogiriのRDocを見てます。
Nodeオブジェクトの
content, text, inner_text, to_str
メソッドは、みな同じって事ですかねぇ?

to_str以外、試してみたら同じ文字列が返って来ます。
to_strは後で試してみます。
0621デフォルトの名無しさん (ワッチョイ a935-GKXO)
垢版 |
2020/08/11(火) 08:03:23.46ID:a9fFSUGp0
>>619
じゃぁ、Session情報はどこに保存?
0623デフォルトの名無しさん (ワッチョイ a935-GKXO)
垢版 |
2020/08/11(火) 12:51:41.54ID:a9fFSUGp0
>>622
great thx!
0624デフォルトの名無しさん (ワッチョイ 6961-747+)
垢版 |
2020/08/11(火) 16:35:32.49ID:pA06ApZK0
>>610
JSの方が、ブロックが楽に書けるし、数値の0がfalseの意味を持っているので分かり易いし、複数行コメントに /*・・・*/ が使えて便利だし、
if 文の条件式を ()で囲むし、単一行コメントが // だし、Cと似ている。
0627デフォルトの名無しさん (ワッチョイ e52c-dj0b)
垢版 |
2020/08/12(水) 01:36:05.08ID:UVmFgkue0
JavaScript, PHP, Python は、各型に偽があるので、10個ぐらいあって大変。
0, 0.0, 空文字列、空配列、空辞書とか

Ruby では、nil, false だけが偽だから、変数の型を考えなくて済む。
各型が偽になる条件を考えるのは、苦痛

確か、Rails には、そういう関数があったかも知れない
0628デフォルトの名無しさん (ワッチョイ 4d61-CWhB)
垢版 |
2020/08/12(水) 02:44:28.08ID:2N2Ra+Iw0
しかし、コンピュータは、ロジック回路や電卓の時代から、0が偽で、1が真と
決められ、TTL-ICでも、NAND, NOR,AND,OR,NOTのどれもがその規則に
従っていた。
アセンブラやマシン語でもそれが踏襲され、1 and 1 = 1, 1 and 0 = 0となる。
とこが、Rubyだけは、1 and 0 = 1 というような変なことになる。
これは受け入れがたい。
こういうコンピュータの基礎を無視するようなことしてるのは困る。
0629デフォルトの名無しさん (ワッチョイ 2e63-cv7i)
垢版 |
2020/08/12(水) 02:52:44.69ID:02pnoruX0
rubyの0はメモリに何も入ってないのを表すんじゃなくてNumericクラスのインスタンス
何かのインスタンスなんだから真なのは自然
rubyの全てオブジェクトという基礎を無視するのは困る
0631デフォルトの名無しさん (ワッチョイ 4d61-CWhB)
垢版 |
2020/08/12(水) 03:12:27.26ID:2N2Ra+Iw0
数学の世界でも、真理値表では、0が偽、1が真。
andを「論理積」というのは、andを掛け算(つまり「積」)に置き換えてみると
結果が同じになり、
orを「論理和」というのも、足し算を「飽和演算」とする場合に、足し算に
置き換えられるからで、
それらは、0を偽とした場合にのみ成り立つ。
0も1も真としてしまっては、これら、論理積、論理和という言葉の定義すら
理解しにくくなってしまうだろう。
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況