Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

はじめに RubyやRailsで、どのようにEnumが使えるか色々試してみました。 結果を忘れないうちに整理するための振り返りメモです。 間違っている点などあれば、ご指摘・指南頂ければ幸いです!!! Enumとは? 「Enum」は「列挙型」のこと。 この列挙型を扱う機能としてRuby on Rails4.1からActiveRecord :: Enumと言うモジュールが追加となりました。 この機能は、モデルの数値カラムに対して文字列による名前定義をマップすることができます。また、データ操作用の便利なメソッドも提供してくれます。 上手く説明できないですが、列挙型を扱うのに何か便利そうな機能です(0ω0)← 【参考】Ruby on Rails 4.1 リリースノート 【参考】Ruby on Rails 5.2.3 ActiveRecord::Enum ※ほぼコレを見るれば事足りる感が否めない笑
Rubyのメソッド公開レベルについて、初心者でも理解できる記事が見つけられなかったので、少々情報が正しいか不安ですが、投稿させていただきます。 Ruby初心者が、どうにかこうにかしてまとめたものなので、下記情報は過度に信じないようお願いいたします。 間違いありましたら、更新しますので、お気軽に教えていただけますと幸いです。 まず、下記、るりまの説明を少々いじったものになります。 - public に設定されたメソッドは制限なしに呼び出せる(特に指定しない場合は「public」に設定される) - private に設定されたメソッドは関数形式でしか呼び出せない(レシーバの利用ができない) - protected に設定されたメソッドは、そのメソッドを持つオブジェクトがselfであるコンテキスト(メソッド定義式やinstance_eval)でのみ呼び出せる まず、いきなりですが、まとめから入り
また同じことをやる日が来る予感しかないので、備忘録的にメモ ※ 環境はmacで、catalina(バージョン10.15.7)です 経緯 いつものようにスクレイピングをしようとすると、chromedriverのバージョンが違うというエラー session not created: This version of ChromeDriver only supports Chrome version 88 (Selenium::WebDriver::Error::SessionNotCreatedError) Current browser version is 90.0.4430.93 with binary path /Applications/Google Chrome.app/Contents/MacOS/Google Chrome 上記のエラーだとバージョンが88しかサポートしてないのに
前回はcurlコマンドを使って直接APIを叩きました。今回はRubyからAPIを叩いてみます。 RubyでHTTP(S)の通信を操作する方法は色々ありますが、まずは基本ということでnet/http(s)を使います。ぶっちゃけ、APIを叩くならもっと便利なライブラリもいくつかあるのですが…。 Droplet一覧を取得する まずはいつものをやります。 require 'net/https' require 'uri' droplet_ep = 'https://api.digitalocean.com/v2/droplets' token = '(トークン)' uri = URI.parse(droplet_ep) http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true http.verify_mode = OpenSSL::S
Rails のコードを読んでいると、module ClassMethods って多く書かれている事が分かると思いますが、こいつが何をやっているのかを話していきます。 module ClassMethods を説明する前に、まず、以下のような Module と Class を定義します。 module ModuleA def self.class_method_a 'class_method_a' end def instance_method_a 'instance_method_a' end end class ClassA include ModuleA end
オブジェクトについて学習してきたがここでクラスとモジュールの概念について学ぶ。 クラス はオブジェクトになれる、、、つまりインスタンス化能力を持ち、インスタンスメソッドやクラスメソッドを格納できる。 モジュール はインスタンス化能力は持たないがメソッドを格納できる。 例えば、以下のクラスとモジュールがあるとする。 module Panda def visit_to_Japan "Mr.TonTon" end def panda @panda = "panda" end end class Zoo def the_zoo "There are lots of animal" end end class UenoZoo < Zoo include Panda def monkey @monkey = "monkey" end def elephant @elephant = "elephant
begin raise StandardError.new("Message") rescue => e p e.class #=> StandardError p e.message #=> "Message" p e.backtrace #=> ["(repl):4:in `<main>'", "/run_dir/repl.rb:41:in `eval'", "/run_dir/repl.rb:41:in `run'", "/run_dir/repl.rb:57:in `handle_eval'", "/run_dir/repl.rb:170:in `start'", "/run_dir/repl.rb:177:in `start'", "/run_dir/repl.rb:181:in `<main>'"] end
業務でrspecを使っているのですが、 rspecは車輪の再発明だと言われたり、 DHHはminitestがおすすめだったり、 minitestのほうが速いと言われていたりする記事を見て、 「なんかminitestのほうが強そうやん」という思いを馳せ、 調べてみたのでご報告でございます。 基本的に、以下2つを参考にいたしました ・RSpecユーザのためのMinitestチュートリアル サンプル ・RSpecとMinitest、使うならどっち? expect(A).to eq Bはassert_equal B, A 比較は以下になります。 rspecでexpect(A).to eq Bでしたが、 minitestではassert_equal B, Aのようになります。 この違いはrspecの記述がDSL(ドキュメント風)なのに対して、 minitestはピュアRubyであるという違いから生ま
ポリモーフィック関連って何? 複数の親を持つ子テーブルを実現するための関連の仕組み どんな場合に使うの? 例えば、 Shop model と、User model でそれぞれ、Profile を持たせたいが 持たせるProfileの内容が全く同じな場合とか 同じ内容のmodelを2個作っても良いけど、 変更時に2個変更させなければならなくてめんどい ShopかUserか関係なく、とにかくProfileの一覧を出したいときにめんどい そんな時は、ポリモーフィック関連を使って、Shop modelとUser model両方を親とするProfile modelを作成する どんな風に実現するの? User model を作成
Rubyには、文字列とシンボルという似て非なるものがある。 それぞれの使いドコロだったり、内部での扱われ方だったりはなんとなく分かってるつもりだったけど、いざ違いを説明しろと言われたら言葉に詰まるなーと思って整理してみる。 困ったときはリファレンスだ!ということで、Ruby2.3.0のシンボルのページを見てみたところ、ちょうどいい解説があったのでそれを参考に文字列との違いを見ていく。 http://docs.ruby-lang.org/ja/2.3.0/class/Symbol.html シンボルとは何なのか? 文字列はまぁ文字列だけど、シンボルってどんなものだろう? リファレンスによると、 Rubyの内部実装では、メソッド名や変数名、定数名、クラス名など の`名前'を整数で管理しています。これは名前を直接文字列として処理するよりも 速度面で有利だからです。そしてその整数をRubyのコード
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く