- 1. rubyのmap関数ではreturnではなくnextをつかう
- 2. LeetCode – 21. Merge Two Sorted Lists
- 3. 【jQuery】RailsでValidation Pluginを使った動的なバリデーションチェックの実装 〜詳細実装/Bootstrap編〜
- 4. 【Rails】 独自 Validation 作成方法(複数モデル適用)
- 5. #Ruby / URI::DEFAULT_PARSER.make_regexp / RuboCop::Cop::Lint::UriRegexp
- 6. Rubyではメソッドにreturnの記述要らない?
- 7. CSS,SCSSで画像を背景にする方法
- 8. Action Cableの設定でつまずいたこと
- 9. 初学者によるプログラミングMemo #19 正規表現(基本編)
- 10. 【Rails】掲示板に禁止ワードを設定する
- 11. THIS BEHAVIOR MAY CHANGE IN A FUTURE VERSION OF CAPISTRANO. Please join the conversation here if this affects you. https://github.com/capistrano/capistrano/issues/1686のエラー解決例
- 12. Railsチュートリアル 第5章
- 13. [Ruby] Array#find_index の複数の index を返すバージョンがほしい
- 14. #Ruby で Shift JIS と UTF-8 を相互変換できないので Windows-31j(CP932) でエンコード・デコードする ( Encoding::UndefinedConversionError )
- 15. 小規模チームが簡単に管理できるテスト管理アプリを個人開発しました
- 16. Ruby初級(計算、each文、ハッシュ、メソッド、既存メソッド、条件分岐、繰り返し文、おみくじ)をざっと書いてみた。
- 17. ミニQ & Aサービスの開発
- 18. (Ruby2.7.0 )Ruby on Railsをうまくインストール出来ないとき(Windows)
- 19. 【解決策】formにカラムが設定されない!?
- 20. Active Storage + S3を使うときに気をつけること
rubyのmap関数ではreturnではなくnextをつかう
rubyで以下の様なコードを実行しようとして失敗した話
“`ruby
obj = (1..5).map do |i|
return ‘this is 3’ if i == 3
#~ 複雑な処理 ~
i
end
puts obj # => nil
“`
なんとなく上記のようなコードを実行したらmapの結果は“`[1, 2, ‘this is 3’, 4, 5]“`の配列がかえってくると思っていたけど実際にはnilが返ってきたので、慌ててrubyのドキュメントを読んでたら、nextを使う必要があるみたい。
nextも引数を取れるので、条件式が正(true)の時に返したいデータをnextの引数に渡す様にしてあげる。つまり以下の様にするのが正しい。
“`ruby
obj = (1..5).map do |i|
next ‘this is 3’ if i == 3
#~ 複雑な処理 ~
i
end
puts obj # => [1, 2, ‘this is 3’, 4, 5]
“`あやうくバグを仕込むことになった…
ちなみにJavaScrip
LeetCode – 21. Merge Two Sorted Lists
# ListNodeをつくる
配列からListNodeのテストデータを作る
“`ruby
# Definition for singly-linked list.
class ListNode
attr_accessor :val, :next
def initialize(val)
@val = val
@next = nil
end
enddef create_list_node(array)
array_of_list_nodes = array.map{|n|
ListNode.new(n)
}lns = ListNode.new(0)
buf = lns
array_of_list_nodes.each{|ln|
lns.next = ln
lns = lns.next
#p lns
#p buf
}
buf.next
endln1 = create_list_node([1,2,4])
ln2 = create_list_node([1,3,4])
【jQuery】RailsでValidation Pluginを使った動的なバリデーションチェックの実装 〜詳細実装/Bootstrap編〜
# はじめに
[前回の記事](https://qiita.com/tiphp452/items/2ac12f7d95a230ef9d02)では導入編をまとめましたので本記事では詳細実装編をまとめます。後半では以下の場合についてもまとめています。
+ Bootstrapを使用している場合
+ deviseを使用している場合
+ 正規表現チェックメソッドのサンプル一覧# 開発環境
Ruby 2.5.1
Rails 5.0.7.2
jQuery 3.4.1
jQuery Validation Plugin 1.19.1
Bootstrap 4.3.1# 実装手順
入力フォームを実装済み、プラグインを導入済みであることを前提としています。
## パスワードと確認用パスワードのバリデーションチェック
### 完成イメージ
[![Image from Gyazo](https://i.gyazo.com/d36d27f39c5a2170c757e1d9867cbf61.gif)](https://gyazo.com/d36d27f39c5a2170c757e1d9867cbf61
【Rails】 独自 Validation 作成方法(複数モデル適用)
# はじめに
バリデーションの作成方法はモデル内にprivateメソッドを作って、そのメソッドをvalidateの引数に指定する方法が一般的かと思います。
今回は、複数のモデルで同じバリデーションを適用したいケースへの対応方法をまとめました。# 独自バリデーション作成方法
## やること開始日時カラムと終了日時カラムを持ったモデルの入力フォームに、
どちらのカラムも入力するか、どちらのカラムも入力しないバリデーションをかけたい。### Concern
まずは、“`app/models/concerns“`の直下にバリデーション専用のクラスを作成する。
Concernsを使用することで、同じカラムを持った他のモデルにも適用することができ、さらに細かい継承関係を考えなくてもよくなります。“`Ruby:app/models/concerns/work_datetime_validation.rb
class WorkDatetimeValidation < ActiveModel::Validator # record には、インスタンスが入る def va
#Ruby / URI::DEFAULT_PARSER.make_regexp / RuboCop::Cop::Lint::UriRegexp
“`rb
# no arg
URI::DEFAULT_PARSER.make_regexp
# => /
# ([a-zA-Z][\-+.a-zA-Z\d]*): (?# 1: scheme)
# (?:
# ((?:[\-_.!~*'()a-zA-Z\d;?:@&=+$,]|%[a-fA-F\d]{2})(?:[\-_.!~*'()a-zA-Z\d;\/?:@&=+$,\[\]]|%[a-fA-F\d]{2})*) (?# 2: opaque)
# |
# (?:(?:
# \/\/(?:
# (?:(?:((?:[\-_.!~*'()a-zA-Z\d;:&=+$,]|%[a-fA-F\d]{2})*)@)? (?# 3: userinfo)
# (?:((?:(?:[a-zA-Z0-9\-.
Rubyではメソッドにreturnの記述要らない?
Railsで開発している際に既存コードにreturnが書かれていなかったり、returnを書いてrubocopに指摘されたりしたので調べました。
rubyでは不要であればreturnは書かない方針のようです。## RubyではReturnの記述は不要
Rubyのメソッドでは、**最後に評価された値が返る**という仕様になっています。
例えば以下のような文字列を返すメソッドがあります。“`ruby
def hoge(is_hoge)
if is_hoge
“hoge”
else
“fuga”
end
end
“`最後に評価された値が返るので、それぞれ以下を返します。
“`ruby
hoge(true) # “hoge”hoge(false) # “fuga”
“`## 後置ifでは注意が必要
例“`ruby
def hoge(is_hoge)
“fuga”
“hoge” if is_hoge
end
“`
“` ruby
hoge(true) # “hoge”hoge(false) # nil
“`
なん
CSS,SCSSで画像を背景にする方法
SCSSで作成
.クラス名 {
background: url(/フォルダ名/ファイル名) no-repeat top / 横px 縦px;
height: 要素の高さ;
wight: 要素の幅;
}backgroundで背景にする
urlで画像を指定する
no-repeatで画像が何枚も投稿されるのを防ぐ
(これがないと勝手に何枚も表示される)topで上に詰める?
画像の縦横を指定してあげる
間違いがあれば指摘をお願いします。
Action Cableの設定でつまずいたこと
##行っていること
以下の記事や動画を参考にチャット機能を作成しています。
[Rails 5 + ActionCableで作る!シンプルなチャットアプリ(DHH氏のデモ動画より)](https://qiita.com/jnchito/items/aec75fab42804287d71b)
[0から手を動かして作るRailsチャットアプリ【チュートリアル】](https://www.youtube.com/watch?v=WCsgcp5dg7M)リアルタイムでのチャット機能を作成する際につまずいたことを、記録も兼ねて共有します。
##やりたいこと
自分(current_user)と他の人で表示方法を変える
##チャンネルの作成
“`
$
初学者によるプログラミングMemo #19 正規表現(基本編)
はじめに
今回は正規表現(基本編)のお話です
正規表現を初めに見たときは、”/\d+\/\/”みたいなのを見てなんだこれは、謎の記号の羅列やんと思ったものです
ですが、私もプログラミング学習を進めていくうちに、少しずつわかってくるようになったので、このタイミングで書きたいと思います
なお、本記述はMacにおいて、Railsでの開発を前提としています
また、まだまだひよっこですので、不備等ございましたらご指摘いただけると幸いです#目次
– 正規表現の各パーツについて
– 正規表現でなんか取ってこよう##正規表現の各パーツについて
まずは謎の記号の羅列が、各パーツに分解できるところから知りましょう(今回は解説含むので、理解できているものを紹介します)“`.rb
[abc] #aかbかcのどれか1文字
[^abc] #a,b,c以外の1文字
[a-z] #a~zのうちのどれか1文字
[a-zA-Z] #a~zかA~Zのうちのどれか1文字
. #任意の1文字
\d #任意の数字
\w #任意(文字、数字、アンダースコアのうちの
【Rails】掲示板に禁止ワードを設定する
掲示板にクローラー的なやつがリンクやスクリプトを書き込み始めたので、暫定的な対応をしました。
“`comments_controller.rb
def create
#以下の4行で対応
prohibited_words = [‘a href=’, ‘