【rails】each文で@postsの要素を配列として並べる書き方
どうも、岩城です。
みなさん、each文は好きですか?好きですよね?違いますか?
さて、そんな私が絶賛片思い中のeach文ですが、railsの中ではどのように使われるのでしょうか。見ていきましょう。
###まずはこちらを見てみましょう
“`<%= truncate(post.title, :length => 60) %>
Posted by <%= post.user.name %><%= post.title %>
<%= post.content %>
<%= link_to "I'm inter
【Ruby】大量のURLのHTTPステータスコードを取得してCSVで出力する
# はじめに
大量のページのHTTPステータスコードを確認しなければいけないコトがありまして、
スプレッドシートやら、無料のWebサービスを利用したんですがイマイチちゃんとできなかったです。
スプレッドシートのスクリプト実装がよくわからなかった。
無料のサービスだと100件までしか確認できない、多すぎて途中でコケてしまうなどありました。そのためRubyで実装したという経緯があります。
また自分が使用するかもしれないのでメモがてら記事書きます。
HTTPステータスがヨグワガンニャイ人は下記の記事を見てみてください。
[httpステータスコード一覧 – 各コードの意味・影響・対処法を解説します](https://www.gc-seo.jp/journal/other/status-code/)# 完成したソースコード
“`ruby
require ‘csv’
require “net/http”urls = []
CSV.foreach(“urls.csv”) do |row|
urls << row[0] end puts "#{urls.length}件のURRuby/GTK3 – ProgressBar
`gem install gtk3`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144608/ad4d5fd4-142a-4f85-2b58-6a5b16e457fe.png)
“`ruby
# frozen_string_literal: truerequire ‘gtk3’
class ProgressBarWindow < Gtk::Window attr_accessor :progressbar, :activity_mode def initialize super self.title = 'ProgressBar Demo' self.border_width = 10 vbox = Gtk::Box.new(:vertical, 6) add vbox @progressbar = Gtk::ProgressBar.new vbox.pack_start progressbar
読書ログ『メタプログラミング Ruby 第2版』5章
## 5章: 木曜日: クラス定義
はじめに
– Rubyのclassキーワードは、オブジェクトの動作規定だけでなく、実際に**コードを実行**している
– この章では、クラスマクロ(クラスを修正する方法) / アラウンドエイリアス(メソッドをコードでラップする方法) / 特異クラス(シングルトンクラス) を説明する## クラス定義とは
– クラス定義にはあらゆるコードを置くことができる
– メソッドを定義するだけの場所ではない“`ruby
class MyClass
puts ‘Hello’
end
“`– メソッドやブロックと同じように、クラス定義も最後の命令文の値を戻す
– クラス(やモジュール)定義の中では、クラスがカレントオブジェクトselfになる
– クラスとモジュールも単なるオブジェクトにすぎない。“`ruby
result = class Myclass
self
endresult #=> MyClass
“`## カレントクラス
– Rubyのプログラムは、常にカレントオブジェクトselfと **カレントクラス**
【完全版】MacでRails環境構築する手順の全て
## この記事は
**初心者でも迷わず環境構築ができるよう、1つ1つの手順を丁寧に解説した記事**です。
なるべく「どうしてこのコマンドを実行するのか」も解説するようにしています。**「環境構築が苦手、よくわからない」**という方は、ぜひ参考にしていただければと思います。
また「railsのバージョン指定がうまくいかない…」と悩んでいる方にも参考になると思います。※もしこれを読んでもうまくいかなければ、ぜひ積極的にコメントいただけますと幸いです!
## マシンスペック
参考までに、私のマシンスペックは以下の通りです。– macOS Catalina 10.15.3
– MacBook Air (Retina, 13-inch, 2018)
– Intel Core i5
– メモリ 8GB## Ruby, Railsのバージョン
それぞれ下記バージョンで構築することを目指します。– Ruby 2.5.7
– Rails 5.2.3## 全体の流れ
この順番でインストールしていきます。1. rbenv(Rubyのバージョン管理ツール)
2. Ruby
3PythonとRubyのインスタントメソッド文法(勉強中)
今回はPythonとRubyの勉強として、
インスタンスメソッドの文法を比較してみたいと思います。
インスタンスメソッドはオブジェクト指向の基本的な内容で、
様々な言語で比較してみたいと考えております。今回の用いるPythonとRubyは下記バージョンで実施しております。
Python: 3.7.4
Ruby: 2.6.3
## Pythonでの例“`python:test.py
class Test:
def __init__(self):
print(‘勉強中’)
“`## Rubyでの例
“`ruby:test.rb
class Test
def initialize
puts(‘勉強中’)
end
end
“`比較のすると「:」や「end」の有無などが違うかなという印象です。
随時更新させていただきます。
Ruby 2.7.0 で速度が重要なときは double splat 引数に double splat 演算子をつけてハッシュを渡すより単にハッシュをハッシュとして渡すほうが良い
Ruby 2.7.0 にして、キーワード引数関連の大量の警告を出ないように変更していったところ、指定の時間内で処理が終わるというテストが失敗するようになったため、もしかして警告に合わせて変更した部分が影響しているのではないかと考え、速度を調べてみました。
“`ruby
RUBY_VERSION # => “2.7.0”h = { a: 1, b: 2, c: 3 }
def f1(o = {})
enddef f2(**o)
endrequire “active_support/core_ext/benchmark”
def _; “%7.2f ms” % Benchmark.ms { 1000_0000.times { yield } } end
_ { f1(h) } # => ” 857.01 ms”
_ { f2(h) } # => “1955.95 ms”
_ { f2(**h) } # => “3679.11 ms”
“`これでわかったこと
1. ハッシュをハッシュとして渡すのはかなり速い
2. `【Rails】Rakeタスクに:environmentがないとNameErrorが出る
## エラー
Rakeタスクを実行したときに、`NameError: uninitialized constant ClassName`が出る。
“`rb:send_summary_mail.rake
namespace :send_summary_mail do
desc ‘管理者に記事数一覧をメール送信する’
task :send_mail do
SummaryMailer.daily.deliver_now
puts ‘メールを送信しました’
end
end
“`“`terminal
$ rake send_summary_mail:send_mail
rake aborted!
NameError: uninitialized constant SummaryMailer
/Users/k_end/workspace/application/lib/tasks/send_mail_summary.rake:4:in `block (2 levels) in‘
Tasks: TOP => send_su関連する記事
OTHERカテゴリの最新記事
- 2024.09.20
JAVA関連のことを調べてみた
- 2024.09.20
iOS関連のことを調べてみた
- 2024.09.20
JavaScript関連のことを調べてみた
- 2024.09.20
Rails関連のことを調べてみた
- 2024.09.20
Python関連のことを調べてみた
- 2024.09.20
Lambda関連のことを調べてみた