Ruby 初心者スレッド Part 64

レス数が900を超えています。1000を超えると表示できなくなるよ。
1デフォルトの名無しさん
垢版 |
2018/09/01(土) 19:25:16.66ID:wk35+pf/
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
Ruby on RailsについてはWEBプログラミング板で

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

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

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

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

Ruby コミュニティ公式
https://www.ruby-lang.org/
2018/11/17(土) 18:34:31.02ID:DG9kgnl3
>>847
その答えは失格だなぁw

正しい答えは「例外をキャッチしたらエラー画面を出さずにエラーメッセージをビューに送る処理を書いたらだめ」だ
849デフォルトの名無しさん
垢版 |
2018/11/17(土) 19:07:10.27ID:+xB40+7+
>>848
あんまりよくわからないです
インスタンス変数はビューから参照出来るんですよね?
それとも例外の処理書き間違えていますかね?
2018/11/17(土) 19:09:54.63ID:DG9kgnl3
>>849
だから、例外は放っておけばいいの
余計なことしなくていい
851デフォルトの名無しさん
垢版 |
2018/11/17(土) 19:11:04.46ID:+xB40+7+
>>850
ではエラーメッセージはどうやってビューに渡すんですか?
2018/11/17(土) 19:58:22.61ID:c8NyF4AG
例外が発生したらそのままプログラムを終了させてしまえと主張する気違いはたまに発生する
2018/11/17(土) 20:11:07.08ID:RvE2CkcA
コンソールアプリならアリかな。
それ以外は原則ナシだけども。
854デフォルトの名無しさん
垢版 |
2018/11/17(土) 22:06:33.92ID:+xB40+7+
なんかバカな質問してました
手段忘れたけど自己解決しました
2018/11/17(土) 23:48:54.13ID:2WlUsnTW
Rails の質問は、web制作管理板の方へ書き込んでください
2018/11/18(日) 02:34:46.70ID:tOYW/MHy
>>851
エラーメッセージやなくて例外やろ?
例外は渡さなくていいって言ってるの
rescueもしなくていいって言ってんの

なんのためにRails使ってるんだよ?
そんなクソ面倒なことRailsにやらせろよ
2018/11/18(日) 02:35:32.08ID:tOYW/MHy
>>852
> 例外が発生したらそのままプログラムを終了させてしまえと主張する気違いはたまに発生する
そいつはバカだな。Railsは例外発生してもプログラム終了しないからな。さすがやで
858デフォルトの名無しさん
垢版 |
2018/11/19(月) 17:01:29.63ID:0ckbPJ2E
掲示板実装できた
これで初心者から初心者にステップアップだ
859デフォルトの名無しさん
垢版 |
2018/11/19(月) 17:13:34.20ID:Vwi20v8M
おめでとう
おれはまだRailsすらinstallできてない
2018/11/19(月) 23:10:53.32ID:057j8H5Q
漏れは、Windows10 で、MSYS2 コンパイラを入れていないから、
websocket のバイナリが無いから、Rails は使えない。
どこかに、websocket のバイナリは無いの?

https://www.mirrorcommunications.com/blog/how-to-install-ruby-on-rails-on-windows-10-with-postgresql

2017/04/22
Windows10, WSL
Ruby 2.4.1
Rails 5.0.1

動画もある

まあ、Rails の話は、webprog 板へ書き込んで!
2018/11/20(火) 08:23:25.13ID:YgW9tKBi
rails+windowsはツラすぎるから
WSLかVagrant使え
2018/11/20(火) 08:40:07.28ID:X8QFm2fd
ツラ過ぎるというより意味がないんだよ
どうせ運用環境はLinuxなんだからWinでの苦労なんて便所の落書き以下の意味すらない
2018/11/20(火) 08:41:53.76ID:z5N5L6gH
誰がヅラだって?
864デフォルトの名無しさん
垢版 |
2018/11/20(火) 08:54:26.91ID:j03mDcba
>>862
これマジ?
既にエディタの環境構築でひと苦労なのに、Linuxの構築もしないといけないのか……
Windowserは不遇だな……
865デフォルトの名無しさん
垢版 |
2018/11/20(火) 09:01:28.76ID:ZtIBLsed
>>864
だから言ったのに… >>686-687
信者も相手のOS確認せずに布教して投げっぱにするなよ。
10人に石投げたら8〜9人がWindowsなんやぞ。

686 デフォルトの名無しさん 2018/10/17(水) 20:13:17.85 ID:pcmrmHBT
ドキュメント軽視とWindows蔑視はRubyコミュニティの伝統。
コードが仕様だ!Windowsなんて使ってる奴が悪い!

687 デフォルトの名無しさん sage 2018/10/17(水) 20:17:44.70 ID:z+Rs6gUv
Unixで開発してるとGCCツールチェインは自然に入ってるからね
はっきり言うね、Windows使いに人権はありません
2018/11/20(火) 11:07:26.51ID:CZ2hfhmS
cloud9使えばいいじゃん
端末のOSなど一切関係ないから
ブラウザさえ使えればいいからクソノートでもキーボードさえついていればいい
867デフォルトの名無しさん
垢版 |
2018/11/20(火) 12:20:10.19ID:Vgqca5m8
Ruby Mineの調子が悪いのでエディタ・IDEを変えようと思うのですがオススメありますか?
vimキーバインドにできてスペルチェックあって自動でend挿入出来るのがいいです
2018/11/20(火) 13:50:12.73ID:aO8Frmcl
>>867
Ruby教の教義的にはspacemacs
世間一般では圧倒的にVSCode
869デフォルトの名無しさん
垢版 |
2018/11/22(木) 16:09:31.09ID:NaVQ99ds
色々使ったけどやっぱvs code最強だわ
宗教上の理由で使えない奴らかわいそうw
2018/11/22(木) 21:14:57.62ID:XJTx/PKt
VSCodeはカーソル移動でホームポジションから手を離さないといけないのがなー
Mac使えばいいんだろうけど、そのためだけにMacってのも
2018/11/22(木) 21:58:47.54ID:YYHdauiZ
VimやEmacsのキーバインド使えばいいでしょ
コマンド入力による操作体系が強力だから少なくともRubyMineに比べたらキーボード中心で使いやすいし
2018/11/23(金) 23:37:21.14ID:uhwEdrvZ
別にAutoHotkeyでキーバインド変更しているから無問題
2018/11/24(土) 01:21:45.23ID:PRCdABA7
MacのキーバインドをWindowsやLinuxでも採用すればよかっただけなのにな
なんでわざわざ変えたんだろう
2018/11/24(土) 06:37:15.09ID:emfrr2Lm
>>873
歴史的に見ればMacの方が後だよ。
Macの今のキーバインドが出来たのは2000年ごろだ
2018/11/24(土) 17:44:17.91ID:YsJMMDpU
動的型付けの衰退 - Oracle
https://www.oracle.com/webfolder/technetwork/jp/javamagazine/Java-JF18-editorial.pdf

このオラクルのPDFだけど
大体の人が動的型に言いたかったであろうことが
大変綺麗にまとまってて良かったよ
2018/11/24(土) 18:33:18.63ID:IZ0lTZaS
>>874
1984 Macintosh
1985 Windows
1991 Linux
2018/11/24(土) 18:52:51.51ID:PRCdABA7
>>876
VSCodeの話しだよね?
2018/11/24(土) 19:18:47.82ID:b7tmfxF4
>>878
1984年ごろのMacのキーバインドはホント糞だったよ
2018/11/24(土) 19:20:18.07ID:b7tmfxF4
OSXからだよ。Unix系の素晴らしいキーバインドを取り入れたのは
Unixは最初から素晴らしかったからね
2018/11/24(土) 19:34:35.47ID:VBkVIhNz
UNIXじゃなくてEmacsだろ
今やUNIXエディタ戦争はVimに完敗し、SublimeやAtomでMacの独壇場だったモダンエディタ系も今やMSの天下
RailsがMacにプリインストールされてイケイケだった頃のRubyが懐かしいな
881デフォルトの名無しさん
垢版 |
2018/11/25(日) 04:38:13.34ID:moheOgid
viって使わないとコマンド忘れちゃうね
仕方ないのでnano使ってる
882デフォルトの名無しさん
垢版 |
2018/11/25(日) 19:49:13.96ID:wWU/NTaG
教本に書いてあるクラス定義の例題プログラムが全然理解できない……つらい……
2018/11/25(日) 20:38:08.40ID:mH6GThxQ
プログラミングには向き不向きがあるから諦めることも大事
向いてない奴が頑張っても生涯クソブラック企業で奴隷だぞ
2018/11/25(日) 23:26:13.89ID:bdma9Nzw
Ruby でオブジェクト指向を勉強するのが、一番よい

Rubyでは、あらゆるものがObject だから、Class 自体もObject

self が、Classからnew したインスタンスを指すのが普通だが、
特異メソッドの文脈では、Class自信を指す

どの文脈なのか注意する。
Classの地の文では、selfはClassだから、ここでは特異メソッドになる。
インスタンスの文脈にならない

@インスタンス変数と、@@クラス変数の他に、@クラスインスタンス変数という変態もある。
これは、selfがClassの文脈で、@を使った場合に起こる。
この場合、クラス自身のインスタンス変数となり、サブクラスへ継承されない

たのしいRuby 第5版、2016
を読んだら、以下の2冊を読むとよい

Effective Ruby、2015
改訂2版 Ruby逆引きハンドブック、2018/8/28
2018/11/25(日) 23:32:04.98ID:+Rx2UR4K
> Rubyでは、あらゆるものがObject だから
あれ?Rubyってメソッドはオブジェクトだっけ?

JavaScriptはメソッドがオブジェクトだから
function foo() {}
console.log(foo.name)
とかできるけど、Rubyって無理だったよね?
2018/11/25(日) 23:35:25.58ID:OqmjDJWv
>>885
Rubyはメソッドもオブジェクトだよ
2018/11/26(月) 00:11:24.80ID:d6jj4yVL
>>886
いやいや
Procと同様ちがうなにか
2018/11/26(月) 00:22:33.42ID:4Su3JOMS
Rubyではブロック自体や単独のメソッド参照はオブジェクトではないよ
第一級関数ではない
889デフォルトの名無しさん
垢版 |
2018/11/26(月) 00:35:00.14ID:kTSSWZBP
block、proc、lamdaを華麗に使い分けるRuby!さすが!
全部functionでやるjavascriptは汚い!さすがjavascriptきたない!
2018/11/26(月) 00:45:36.82ID:nvtZwlw2
処理は、わざと第一級関数・オブジェクトにしなかった

オブジェクトはレシーバー・主体で、メソッドはそれに対する操作。
この区別を厳格にした

そして、メソッドを持ち運ぶ場合だけ、block, proc, lamda に変換する。
基本は、クロージャの実装ある、block

JavaScript では、関数オブジェクトとは何なのか?
抽象的すぎて、よくわからない
2018/11/26(月) 00:57:52.75ID:woCsHcs5
>>890
この池沼にも理解できるように意図して設計したとしたらRubyは凄いわ
まあRubyの obj.method がメソッドオブジェクトを返さない実際の理由は、
括弧を省略することで属性のように見えるというアイデアに固執したせいなんだけど
2018/11/26(月) 02:24:34.07ID:DMixgTsv
>>891
固執ってどこからでてきたの?
2018/11/26(月) 03:44:29.07ID:nvtZwlw2
ローカル変数・無引数メソッドの、区別が難しい!

無引数メソッドに代入すると、新しいローカル変数が作られて、メソッドが隠される。
ただし、ローカル変数が見えないスコープでは、メソッドが参照されるが、
f( ) のように、( )を付けるとメソッドが呼ばれる

def f( ) "method" end
p f #=> "method"

f = "var"
p f #=> "var"

f = "var"
p f( ) #=> "method"
2018/11/26(月) 08:10:20.68ID:AloVWQrN
>>889
アロー関数知らんのか

RubyにもUnboundMethodがあることはある。
895デフォルトの名無しさん
垢版 |
2018/11/26(月) 09:09:15.66ID:mqDjQZG/
>>894
知ってるが。
>>889に(function(){}).bind(this)のシンタクティックシュガーを取り立てて書かなきゃならない意味とは?
マウント取りたかったのかな?
2018/11/26(月) 09:21:23.12ID:sgq1LDCF
Rubyってメソッドはオブジェクトじゃないんだな
2018/11/26(月) 11:04:39.94ID:DMixgTsv
メソッドをオブジェクト化することはできるけど、メソッド自体は違うね
2018/11/26(月) 11:22:24.16ID:jCGZ4ioD
根本的な思想が違うんだよ
obj.method(arg)
JavaScript : obj から method プロパティの値を取り出し、その値を関数オブジェクトと見做して呼び出す。
Ruby : obj に「method という名前のメソッドを呼び出せ」というメッセージを送る。それにどう反応するかは obj の勝手である。
ただし、Rubyは内部的にはメソッドがオブジェクトとして実装されてたりしてごっちゃになってるので一貫性に欠ける無茶苦茶な仕様になってる。
899デフォルトの名無しさん
垢版 |
2018/11/26(月) 11:26:02.21ID:mqDjQZG/
>>898
(x => x * 2)(3)
//=> 6
2018/11/26(月) 11:34:05.04ID:DMixgTsv
>>899
別に無茶苦茶ではないけど
何を持って無茶苦茶と言ってるんだろう?
俺様の感性に合わないこと?
901デフォルトの名無しさん
垢版 |
2018/11/26(月) 12:05:56.16ID:mqDjQZG/
>>900
なんで俺に言うんだよ無茶苦茶って言ってる>>898に言え
2018/11/26(月) 12:36:19.94ID:DMixgTsv
>>901
すまぬ
純粋なアンカミス
2018/11/26(月) 12:46:09.25ID:sgq1LDCF
とりあえず、Rubyは全てがオブジェクトだという嘘をつくのはやめろって言う話
2018/11/26(月) 12:54:43.65ID:8VBeLDjH
オブジェクトだったら勝ちみたいな風潮なんなんだよ
2018/11/26(月) 12:56:49.77ID:sgq1LDCF
知らんよ。なぜかRuby厨の自慢になってるんだよ。
「全てがオブジェクト(嘘)」
2018/11/26(月) 14:27:40.48ID:DMixgTsv
あれだろ、数値とかがオブジェクトではないJavaとかPerlと比べてるだけだろ
Rubyが出た当初の自慢話を今も引きずってると思い込んでる時点で何だかなという感じ
2018/11/26(月) 15:54:35.18ID:hq9iFTQc
そもそもなぜそれが自慢になるのかがさっぱり分からんな
しょせんSmalltalkの顰みにならったに過ぎない変態仕様を…
908デフォルトの名無しさん
垢版 |
2018/11/26(月) 16:51:28.97ID:M4lkR7sD
31bit整数ω
2018/11/26(月) 17:02:57.25ID:DMixgTsv
OCaml の悪口はそこまでだ
2018/11/26(月) 17:11:49.93ID:mi59PQkK
おかむl
2018/11/26(月) 17:58:58.25ID:G4ZIak1L
岡村△
912デフォルトの名無しさん
垢版 |
2018/11/28(水) 17:45:51.76ID:eIHsuPDh
空白に表示されている所は、タブ文字ですが、
{ |row| row } のように、無処理のブロックの短縮形は、ありますか?

require 'csv'

# タブ区切りで、要素中にもタブ文字・カンマあり
text = <<TEXT
あ "A a" 1,11
い "B b" 2,22
TEXT

result = ""
# 区切り文字を、タブ文字からカンマに変える
options = { :input_col_sep => "\t", :output_col_sep => "," }
CSV.filter( text, result, options ) { |row| row }

結果
あ,A a,"1,11"
い,B b,"2,22"
2018/11/28(水) 17:53:59.91ID:XVA+2nJs
>>912
CSV.filter( text, result, options, &:itself)
914912
垢版 |
2018/11/28(水) 18:59:40.51ID:eIHsuPDh
ありがとう

Ruby 2.2 から、Kernel#itself, &:itself が出来たのですか
2018/11/29(木) 01:59:21.23ID:4ZKIuq+k
>>914
古いバージョンなら String#.to_s でもいいんじゃない
916デフォルトの名無しさん
垢版 |
2018/11/29(木) 02:48:29.40ID:ef+1qPo+
#.
2018/11/29(木) 07:47:24.36ID:gGiWbZov
#.
2018/11/29(木) 09:33:08.29ID:NKs4R87v
#.
2018/11/29(木) 19:28:41.86ID:g5k5pPxJ
#.
920デフォルトの名無しさん
垢版 |
2018/11/29(木) 20:19:30.78ID:eQcl6Axj
youtubeでプログラミングやれば転職やフリーの仕事がまあまあできる、実際は
どうなんでしょうか。自分も学校に通ってプログラミングを習うつもりですが、
転職の際に役立つスキルとPRとして使えるのか、そのまま転職、または何かのきっかけレベル
になるのか、その辺りがわかならいままです。
2018/11/29(木) 21:13:51.20ID:BEC3KPap
中途未経験でPGになるならはじめからまともな労働条件を望むのは非常に厳しい
ド糞ブラックならFizzBuzz書ければ通るから、まずはそこで3年耐えて、実績がついたら転職だ
その覚悟があるならいらっしゃい
2018/11/29(木) 21:22:14.03ID:BEC3KPap
あと、Rubyはかなり上のレベル(君が日本のITベンチャーと聞いて思い浮かぶようなところ)
までいかないと人並みの給料貰えないし、そういうところは脱Rubyが進みつつあるから、よほどRubyに強い拘りが無い限りはお勧めできない
無難なのはJava、C、C#、JavaScript(できればNodeも)あたりだね
2018/11/30(金) 07:26:13.92ID:a1TjZ85x
与えられた数値をより短い文字数で表せる計算式を作れたら大金持ちになれる。
2018/11/30(金) 09:06:41.21ID:VjmtC3o0
YouTube を見たら、学費無料もある。
転職請負人・育成機関だろ。
プログラマーに育て上げて、企業が採用したら、お金をもらう

Ruby は、短時間で学べる事が多い。
バグで時間を取られないから、
その時間でデザインパターン・フレームワーク・Linux コマンド・環境構築運用を学べる

Rubyの人は、広く浅く、システムの全行程がわかる。
Java のような関数だけ書けて、システムがわからない土方じゃない!
Rubyは、SE に近いプログラマー

画面は、HTML, CSS, JavaScript(JS) で作るから、これらにもRubyは応用できる。
JS, Kotlin などは、Rubyに似せているから、他言語にも応用できる
2018/11/30(金) 10:49:21.11ID:lqSrmRtB
お前ら責任持って相手してコイツ↑をこのスレに引き付けとけよ。
他のスレ迷惑してんだからほんと。
2018/11/30(金) 10:57:56.96ID:pEng5xY0
>>923
ZeoSyncという会社が100分の1程度にまでランダムなデータを圧縮できる技術を開発した
2018/11/30(金) 14:50:04.77ID:UglrfTNg
Rubyの勉強したいんだがどのように覚えたらいい?
最終的にはRailsを使えるようになりたい
Rudyの基本的な文法覚えるのと他にやるべき事ってある?
2018/11/30(金) 15:03:43.94ID:pEng5xY0
さっさとRails使え。RubyとRailsの勉強はあとからだ
929デフォルトの名無しさん
垢版 |
2018/11/30(金) 15:09:35.21ID:PtogTj5L
>>927
チェリー本おすすめだよ
2018/11/30(金) 16:14:37.51ID:1XSsfFTr
他の言語経験済みなら公式ドキュメント読めば十分
2018/11/30(金) 22:59:49.28ID:MkfLpznc
>>922
>脱Rubyが進みつつある
Ruby から何に移行しようとしているのでしょうか?
2018/11/30(金) 23:00:34.72ID:MkfLpznc
>>926
ありえない…
ランダムデータは基本的に圧縮できないものなのでは?
2018/11/30(金) 23:32:34.88ID:XGbv3Lgm
>>922
AWS Lambdaが対応だってよ?w
https://www.publickey1.jp/blog/18/aws_lambdarubyaws_reinvent_2018.html
934デフォルトの名無しさん
垢版 |
2018/11/30(金) 23:33:06.67ID:VjmtC3o0
progate のサイトに、Ruby, Rails 5 の教室がある

無料かどうかは、知らないけど
2018/11/30(金) 23:44:08.65ID:VjmtC3o0
WEB+DB などでも、Ruby で有名な、クックパッドの社員の記事をよく見る

Rubyが、日本を引っ張ってる感じがする
2018/12/01(土) 00:03:27.37ID:J8cQMvWo
>>935
>Rubyが、日本を引っ張ってる感
Rails 以外でとんがった企画があれば、あるいは
2018/12/01(土) 00:44:40.46ID:bHszpHWA
>>933
それRubyがPowerShellより優先度低いってことなんだけどわかってる?
938934
垢版 |
2018/12/01(土) 06:40:35.57ID:2OgcqxL5
progate のサイトで、Ruby を学んでみたけど、途中から有料になる
2018/12/01(土) 10:56:47.75ID:ovdZdyXB
>>937
ただの順番やん。w
対応されたことに意味があるんやで?
2018/12/01(土) 11:17:15.65ID:cJ9vDtaH
COBOLも対応したんだよなあ
941デフォルトの名無しさん
垢版 |
2018/12/01(土) 13:37:36.24ID:SyV5Kwhs
irbでコード直打ちで試行錯誤でクラスとか作りながら、「あ、動いた動いた」となったときに
そのコードを保存しておこうと思ったらどうすればいいの?

historyで行を拾っていくしかない?
2018/12/01(土) 13:47:54.40ID:Km1sjdO2
そんなことしないで、テストコード書いて
テストとおったらOKにってやり方にしなさい
テストコードあれば何度でも最初から試行錯誤できる
アクロバット的なことをしなくていい
2018/12/01(土) 14:01:16.52ID:q6i9ekrs
>>941
そんな段階で書いたコードなんか後でクソの約にも立ちません
潔く捨てなさい
944デフォルトの名無しさん
垢版 |
2018/12/01(土) 14:01:44.62ID:SyV5Kwhs
いや、業務でとかじゃなく暇つぶしでirbでいろいろ試してるのが楽しくて、で、
「あ、こんなこともできるんだ」とふと発見があったときに
そのコードを記録しておく方法がほしいんです、アクロバットとかじゃなく

historyしかない?
2018/12/01(土) 14:05:07.89ID:q6i9ekrs
>>944
そんな小学生レベルのオナニーが楽しいのは初心者のうちだけ
断言するが、その段階を脱した後でそれを見ることは絶対にない
946デフォルトの名無しさん
垢版 |
2018/12/01(土) 14:06:41.43ID:SyV5Kwhs
例えばprologとかだとreplでいろいろ遊んだ後にlisting()とかやるとpredicateが一覧できるよね?
そういうことがやりたいんだけど
2018/12/01(土) 14:08:49.20ID:q6i9ekrs
そういうのが好きならPythonに乗り換えてJupyterでも使ったら?
たぶん気にいると思うよ
レス数が900を超えています。1000を超えると表示できなくなるよ。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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