Ruby 初心者スレッド Part 62
■ このスレッドは過去ログ倉庫に格納されています
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。 質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお Ruby on RailsについてはWEBプログラミング板で 前スレ Ruby 初心者スレッド Part 61 https://mevius.5ch.net/test/read.cgi/tech/1503644351/ るりまサーチ (リファレンス検索) http://rurema.clear-code.com/ Rubyist Magazine - るびま http://jp.rubyist.net/magazine/ 逆引きRuby http://www.namaraii.com/rubytips/ みんな、デバッグはpで済ましてる? それとも何かツール使ってる? 自前でpryもどきを作ってbinding.hogeしてる awesome-print/awesome_print: Pretty print your Ruby objects with style -- in full color and with proper indentation https://github.com/awesome-print/awesome_print 最近、debug.rb知って使うようになったけど pで間に合うデバッギングしかまだやってないんだよな RubyInstallers の、7-Zip Archives の所からダウンロードした、 Ruby 2.4(x64)は、Rubyのポータブル版の実行環境だった。 Ruby 2.4(x64)は9MB で、解凍すると56MB になった これだけでも、ファイルI/O など、結構遊べる デフォルトで、erb, irb, minitest, sinatra などが入っている。 RSpec は入っていないけど 先に、bundler gem を入れて、 VS Code の画面で、Ruby Solargraph という拡張機能を入れると、 solargraph gem がインストールされるので、VS Code で補完ができる VS Code で、Ruby のデバック用の拡張機能を入れようとすると、 Windows のネイティブコードにコンパイルする必要があるから、 The MSYS2 DevKit を入れる必要がある。 これが、1.7GB もあるらしいので、入れない方が良い 1行ずつデバッグせず、p などで表示しながら作るのが良い MSYS2 DevKit を入れない範囲で、プログラミングするのが簡単 英語が読めなかったんですね。すみませんでした マニュアルには「コロンとコンマの区切りの後にspace:で指定した文字列がおかれる」と書いてあります space_beforeはコロンの直前なので関係ありません 何しても`,'の後ろには入らないね バグっていうよりマニュアルの不備なのかな ,の後ろにスペース入れるのは一般的なフォーマットだから、常識的にはドキュメントの方が正しいでしょ 直してプルリク出せ 新年からRailsを勉強中。環境はwin64 <%= csrf_meta_tags %> <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> <%= javascript_include_tag 'default', 'data-turbolinks-track': 'reload' %> </head> さっきから、こいつに対してExecJS::ProgramError hogehoge#indexってエラーを吐いてばかり coffee-scciptも1.8.0にしてもさっぱり解決せず。libv8とtherubyracerを入れろとか書いてるけど、 さっきから2時間以上苦戦してるが、全くインストールできずエラーばっかり 何なんだこれ 違った、viewの中身はこいつだ <!DOCTYPE html> <html> <head> <title>hogehoge</title> <%= csrf_meta_tags %> <%= stylesheet_link_tag "application", media:"all", "data-turbolinks-track"=> true %> <%= javascript_include_tag "application", "data-turbolinks-track" => true %> </head> <body> <%= yield %> </body> </html> 今時WinでやるならWSLを使おう どうせ運用はLinuxなんだからそれに慣れる意味でもな あと、オワコンCoffeeなんか今更使っちゃダメ タイトルでそう思ったけど、ここ初心者スレじゃなかったのか 仕方ない、自分でもうしばらく足掻くか WSL使おうってアドバイスがあるのにさらっと無視するようじゃ、初心者スレ云々の問題じゃないかと思われる すべてのwindowsでWSL使えるわけじゃないのに何言ってるの だったらWSL使えないって言えよ そしたらVMWare使えってアドバイスもらえるんだからさ 答えのわからない質問に、的はずれな回答しなくていいから わからないなら黙ってなさい 原因わかったよ、鋸使わなかったから 鋸使ったらうまくいった あとで調べたらWSLは互換性がどうたらとか書いてたし、VM使うほど容量に余裕ないんで でもまあwindowsよりLinux使えってのが大きなヒントになったのは確か 互換性はWSLの方が遥かにマシだぞ WinのRubyなんか動いたらラッキーレベルのおまけ >>620 に書いておいた The MSYS2 DevKit などで、 Windows のネイティブコードにコンパイルしているようなものは、基本的に使えない。 それに、コンパイルできても、正常に動くとは限らないし Nokogiri などの各gem が、バージョンアップに対応しないから、 Rails 5 などは使えない 各gem を作っている人は、皆手弁当でやっているから、 OS のバージョンアップに一々、対応していられない Ruby の対応状況と、各gem の対応状況は、全く違うし、作者も別人。 とにかく、gem を使うものは、gem のバージョンに合わせて、 Ruby, Rails のバージョンを下げないといけない Ruby 使いは、vagrant, chef を使う。 または、WSL, Docker など 基本的に、gem の作者が、Windows10 用のバイナリを配布していない、 gem は、作者によって動作が保証されていない それを、The MSYS2 DevKit などで、ユーザーが勝手に、 Windows のネイティブコードにコンパイルして、動かしているようなものは、 基本的には安全ではない。 コンパイルできても、正常に動くとは限らないから gem の作者でもないユーザーが、勝手にコンパイルして動かしても、安全性を証明できない gem の作者が配布している、バイナリのバージョンまで、 Ruby, Rails のバージョンを下げる必要がある Windows10 の場合は、RubyInstallers に、最初から入っている、 erb, irb, minitest, sinatra などで遊ぶ。 gem も、ユーザーがコンパイルする必要のない、gem の範囲で、遊ぶのが良い gemの範囲で遊ぶのが良い までは読んだ まあ遊びというか入門勉強用にしとけばいいわけだな。遊びでも触っておけば、本番で構築が必要になった時 いくらでも応用利くから。MVCも他のフレームワークとあまり変わらなさそうだし 何故、荒らしはアンチスレに帰らないで本スレで自演してるの? さみしいの? >>643 アンチもクソも、現実を直視しよう Rubyのコアのコミュニティに行くとWin使いには人権ないぞ このスレはまだマシな方だよ 人権とかいう排他的な言い方しなくても、win環境には適応しきれていないのはわかったよ rails new hogehogeコマンドで新たなアプリケーション作ってもまともに動かないことも分かったし 社内PCにはVMぐらいは作ってあるから、そっちでいくらでも試せる 今度はサーバ設定ツールにvagrant、chef、Docker、WSLとか書かれてるけど どれが一番オススメかは聞いておきたい なんかもう言ってることがすごいな >The MSYS2 DevKit などで、ユーザーが勝手に、 >Windows のネイティブコードにコンパイルして、動かしているようなものは、 >基本的には安全ではない。 サーバー設定はchef-soloが簡単かなー 鯖は最終借りて使うことになるし AWS,VPSなんかに使いまわしできる。 dockerなんかも便利 web系はLinuxは必須。 結局Vagrant使ってVB入れて続きを動かしてみることにした 自演で伸ばしてくれるのはありがたいけど、 はやくアンチスレへ帰りなよ >>647 ansibleの方がマシ ただ俺に言わせりゃ冪等性が必要ない 使い捨てマシンの設定はシェルスクリプトでいい >>649 アンチスレとかあるんか?そんな技術どうこうに、わざわざアンチとか騒いで 何か開発上のメリットでもあるのか? 嘘を吹聴してる荒らしはまだおるんか? はよーアンチスレへ帰れ 初心者スレで嘘ばっかりつきやがって そこまで言うなら 他のスレに貼り付けてやろうか? Ruby開発者はこんな連中ばっかりだと Pythonスレとかあたりに 俺はPHPとかJavaScriptはMVCフレームワーク含めて経験あるし、納品実績もあるけど RubyやRailsは本当に初心者だよ、去年まではRailsなんて名前しか知らんかった 一応上司に勉強しといた方がいいって勧められて、せっかくの正月休みなんで 意気込んで勉強してたんだよ こんなところで質問した自分が心底馬鹿だったわ 初心者を罵倒するスレに改名してくれ おまえ、 他のスレを荒らすのもええ加減にやめろ みんな迷惑しとるやろうが >648デフォルトの名無しさん2018/01/03(水) 16:02:34.32ID:vVUVg3Hi >結局Vagrant使ってVB入れて続きを動かしてみることにした 例の荒らしがとうとう他スレに移住してくれるわけか これはめでたい Docker、2016、オライリー 実践 Vagrant、Mitchell Hashimoto、2014、オライリー Vagrant, Packer などで有名な、HashiCorp の創始者 Chef実践入門 - コードによるインフラ構成の自動化、2014 cookbookは各社が公開している Chef社のopscode、Railsを作っている Basecamp社、 Berkshelfを作っている Riot Games社、 Pivotal Trackerを作っている Pivotal Sprout社、 aws, engine yard まーた誤爆してる ログ残すのがそんなに大好きなのかな CentOS は、64ビット版のみで、32ビット版はもうやっていない。 Linux も徐々に、32ビット版を作らなくなってきた Ruby で、ユーザーが勝手に、ソースコードからコンパイルしているような、 32ビット版のgem は、使えなくなってくる gem の作者がほったらかしで、64ビット版をサポートしていないから、 こういうgem に依存しているアプリは、Linux でも動かなくなっていく これ、朝になったらアンチが発狂して自演繰り返すパターンだわ 俺知ってる Windows10 Home で、RubyInstallers の、7-Zip Archives の所からダウンロードした、 Ruby 2.4(x64) ポータブル版、The MSYS2 DevKit 無しで、 Nokogiri をインストールしたら、 コンパイル無しで、Windows用のバイナリgem がインストールできたのか?w The MSYS2 DevKit は、インストールしていないけど PS C:\Users\Owner\Documents\Ruby\proj01> bundle install Fetching gem metadata from https://rubygems.org/.............. Resolving dependencies... Using bundler 1.16.1 Fetching mini_portile2 2.3.0 Installing mini_portile2 2.3.0 Fetching nokogiri 1.8.1 (x64-mingw32) Installing nokogiri 1.8.1 (x64-mingw32) Bundle complete! 1 Gemfile dependency, 3 gems now installed. Use `bundle info [gemname]` to see where a bundled gem is installed. Post-install message from nokogiri: Nokogiri is built with the packaged libraries: libxml2-2.9.5, libxslt-1.1.30, zlib-1.2.11, libiconv-1.15. Windows10 Home で、RubyInstallers の、7-Zip Archives の所からダウンロードした、 Ruby 2.4(x64) ポータブル版 (The MSYS2 DevKit 無し)に、最初から、 libxml2-2.9.5, libxslt-1.1.30, zlib-1.2.11, libiconv-1.15 などのコンパイル済みライブラリが入っているみたい なので、The MSYS2 DevKit が無くても、 Nokogiri gem を入れるだけで動く やってみたら、Nokogiri は、確かに動いた! インストールの最難関と言われる、Nokogiri が、簡単にインストールできた!w Ruby 2.4, gem, Nokogiri などの進化を感じた >ID:Db2jLLtK 何度も言うが自演を繰り返して荒らすなら アンチスレへ行け 質問 Arrayで事足りるケースにしかまだ出会ってないけど Enumerableってどういう時に使うの? >>665 p ([].each).class.ancestors 初歩の初歩な質問ですけど… 配列に0から99までの数字を一括で格納したいです a = [0,1,2...と記述していてはとても長くなるので… どうすれば良いのでしょうか? そういえば (0..99).to_a で気づいたけど、>>665 のいう Enumerable は Range クラスも持ってるな ちょうどいい例じゃね? EnumerableならPrimeクラスの使い方見てみるのもいいかもね Windows10 Home 64ビット版に、 RubyInstallers の、7-Zip Archives の所からダウンロードした、 Ruby 2.4(x64)ポータブル版、The MSYS2 DevKit 無しで、 コンパイルせずに入れられる gem だけで、遊んでみた 以下は、入れた gem です 先に、bundler を入れて、以後のgem は、bundle install で入れた rack-test は、sinatra のテストに使う。 Nokogiri VS Code の拡張機能用の、solargraph 入れたgem と、irb, erb, minitest, sinatra が、正常に動いた #{hoge}などの形で入力をそのまま正規表現に入れた場合に、入力に正規表現が含まれていると意図しない挙動が起こると聞いたのですが、どのように回避するのが良いのでしょうか? systemメソッドでperlのワンライナーを呼び出す >>674 #{hoge}などの形で入力をそのまま正規表現に入れない。 具体的には、Regexp.escape などでエスケープ処理した文字列を利用する。 空港のwifiからアクセスした際にログイン出来ないという報告がありましてログを見たところ ActionController::InvalidAuthenticityTokenというエラーが出ていました CSRF対策の仕組みが関係することは分かったのですが なぜこれが発生するのか分かる方いらっしゃいませんでしょうか 空港やホテルは、設定が厳しい。 LAN 内ですら、お互いに通信できないだろ 隣の人のスマホと、アクセスできないだろ 空港やホテルの、wifiは危険だから、設定が厳しい 「空港 wifi セキュリティ」で検索! Windows10 Home 64ビット版に、 RubyInstallers の、7-Zip Archives の所からダウンロードした、 Ruby 2.4(x64)ポータブル版、The MSYS2 DevKit 無しで遊んでみた 日本語については、 Windows の設定画面から、ユーザー環境変数へ追加します。変数名・値は、 RUBYOPT --encoding=UTF-8 これで外部エンコーディング・Encoding.default_external が、 Windows-31J から、UTF-8 へ変更されるので、 Ruby 起動時のコマンドライン引数に、日本語を使えます ただし、この環境変数を追加すると、irb が動かなくなる。 この環境変数が無ければ、 irb -E CP932 で、Windows-31J で、正常に動くので、 irb を使う人は、環境変数を追加せずに使う >>681 大変申し訳ないが一回だけ言うね 日記の続きは貴方の個人的なブログでお願いしたい ここはみんなのスレなのでご理解ください 備忘録とか日記のネタとか書くのは問題ないだろ 普段はそこまで賑わっているスレじゃないんだから 雑談OKなわけだし、初心者にはありがたい情報じゃないのかな レス読んでないけど、情報共有するならここに書くよりかQiitaにあげた方が有益だと思うけどね まぁどっちでもいいわ irb のソースコードを見て、誰か、 外部エンコーディング・Encoding.default_external が、 UTF-8 でも動くように、修正してくれないかな? それと、Windows で、Ruby を使っている人も、書き込んでほしい。 Windows の、Ruby 使いが少ない 自分で直してPull Reques出せ 基本的にWin使いに人権はないので、Winのためにソースを汚すことは嫌われるから注意 I’m like pp, just like pp irb がクソみたいな描画ライブラリを使わずに、 GUI だけを、PowerShell を使ってくれたら良いのに。 PS なら、UTF-8 だし ロジック・GUI が分離できていて、 簡単に、PS に切り替えられたら良いのに お前は何を言ってるんだ RubyはUNIXにべったり密結合している それを良く思っていないのはRuby村においては被差別民であるWin使いだけ Windows で、Headless Chrome でテストしている香具師いる? Windows 10, Ruby, Chrome, Selenium WebDriver は、64ビット版だけど、 Windows 用の、ChromeDriver は、32ビット版しかないけど、これで正常に動くの? rubyからOpenGLを扱うgemがいくつかあるけど、 どれが一番使われてるの? Unicodeコードポイントにスケープされた4バイト文字をJSON..#parseすると怒られるんだけど、何かいい方法ないかな? 愚直にgsubするしかないのかな https://ideone.com/V6sNRh >>695 RubyのJSON.parseがUnicodeコードポイントエスケープに未対応なのかな? 「¥u{XXXXX}」を「¥uXXXX¥uXXXX」に変換してやればよさそうだけどね Windows 10 Home, Ruby, Chrome, Selenium WebDriver は、64ビット版で、 ChromeDriver (32ビット版)も使えるけど、 Chrome v63 を、headless で使うと、エラーになる 「failed to launch gpu process.」 --headless, --disable-gpu を設定する必要がある selenium-webdriver は、コンパイル無しで、gem を簡単にインストールできた >>695-697 Ruby 2.4 からは、5バイト以上の絵文字なども、正規表現で使えると聞いた。 JSON では、そういう文字も使えないの? ReactDOM.render( <div> <h1>Hello, world!</h1> <h2>texttext</h2> </div>, document.getElementById('app') ); JavaScript の中に、直接HTML を書ける、 JSX みたいな書き方が、Ruby にある? 出来れば、erb のような書き方は、避けたい iCloud 9のコマンドプロンプト打っても俺のパソコンに反映されないんですが助けて >>698 規格上は使えるけどRubyのJSONライブラリがまだ対応していないっぽい 改訂2版 パーフェクトRuby、Rubyサポーターズ、2017 この本は、ツールの説明なども多いから、読むのに時間がかかる keyには現状:aか:bしか来ないけど将来的には増えるかもしれないとする。 ダックタイピングを意識して次みたいに書いてみたんだけどこれだと、 keyの種類が増えた時にそれに対応するクラスだけじゃなくてcase文も増やさないといけなくなる。 上手い書き方無いかな? def hoge(key, value) x = case key when :a then A.new(value) when :b then B.new(value) end x.huga x.hage end def hoge(key, value) x = {a: A, b: B}[key].new(value) x.huga x.hage end def hoge(key, value) x = Kernel.const_get(key.capitalize).new(value) x.huga x.hage end それは、典型的なオブジェクト指向の利点 派生クラスを使えば、switch〜case 文が無くなるから、 その部分の修正もしなくてよい 各派生クラスで、クラス内でオーバーライドされた、同名のメソッドを呼ぶだけ レンタルサーバーにRubyをインストールする手順に関する質問はここで良いでしょうか? Railsの方が良いでしょうか? Webサイトちょっと動かしたいだけなら自分で運用構築なんて時間の無駄だからPaaS使うことを強くお勧めする 環境構築には、vagrant, chef は、Ruby でレシピ(手順書)を書ける。 Docker もある 仮想環境コンテナ総合スレ Docker、Vagrant等 [無断転載禁止]c2ch.net https://mevius.5ch.net/test/read.cgi/tech/1487235664/l50 FJORD BOOT CAMP(フィヨルドブートキャンプ) https://bootcamp.fjord.jp/ 無職なら誰でもオンライン無料学習 Ruby の女神・池澤あやかは、島根県のRuby合宿で、Rubyを極めたらしい 今日mechanizeを使い出したんだけどいいなこれ なんで今まで使わずにスクレイピングしてたんだろってくらい感動した バージョン2.2.0以降次のコードがSecurityErrorにならないんだけど、仕様が変わってマニュアルの情報が古くなってるのかな? $ ruby -ve '$SAFE = 1; open(ARGV[0])' hoge Traceback (most recent call last): 2: from -e:1:in `<main>' 1: from -e:1:in `open' -e:1:in `initialize': No such file or directory @ rb_sysopen - hoge (Errno::ENOENT) ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる