- 1. 【Ruby on Rails】yarn install –check-files
- 2. gemのransackで複数カラムを検索対象にする方法
- 3. クラスとインスタンス
- 4. fizz_buzz問題で使用された表現
- 5. 【Rubyトリビア】elsif の条件式は省略可能!?
- 6. Rubyでハッシュをうまく使って注文の合計金額を計算する
- 7. Railsで個人開発してたら、Railsがめっちゃ叩かれて辛みだった話
- 8. Rubyで文字列の出現回数を数える
- 9. RubyでJSの即時関数みたいなことをやる
- 10. 【Rails】raty.jsを使った評価機能を作る
- 11. エラー解決を通してdeviseのメソッドuser_signed_in?とcurrent_userの理解が深まった話
- 12. [ruby]演算子について
- 13. テーブルにカラムを追加する方法
- 14. ActiveRecord_RelationとCouldn’t find Item without an IDのエラーについて
- 15. RSpec~Taskモデルのバリデーションテスト作成まで
- 16. Chefの概要を分かりやすく書いてみました
- 17. railsでほぼ静的なページの作り方
- 18. 必ず役に立つ!Ruby on Railsでの開発で使えるデバッグコード
- 19. Rails 記事詳細リンクは、ループ内でしか機能しない?
- 20. wrong number of arguments (given 1, expected 0)
【Ruby on Rails】yarn install –check-files
## 導入
Rails環境で、node_moduleをインストールしたら発生したエラー。“`shell
========================================
Your Yarn packages are out of date!
Please run `yarn install –check-files` to update.
========================================To disable this check, please change `check_yarn_integrity`
to `false` in your webpacker config file (config/webpacker.yml).yarn check v1.22.5
info Visit https://yarnpkg.com/en/docs/cli/check for documentation about this command.
“`## 解決方法
このエラーは、package.jsonにあるパ
gemのransackで複数カラムを検索対象にする方法
##始めに
僕自身複数カラムを検索対象にするのは難しいと思っていたのですが、思っていたより簡単にできたので是非参考にしてもらえたらなと思い、書くことにしました。##前提
僕はPostモデルのtitleとdescriptionを検索対象にやっていきます。“`ruby
class CreatePosts < ActiveRecord::Migration[5.2] def change create_table :posts do |t| t.string :title ⬅️⬅️⬅️⬅️⬅️⬅️これ t.integer :recommended t.text :description ⬅️⬅️⬅️⬅️これ t.references :user, foreign_key: true t.timestamps end add_index :posts, [:user_id, :created_at] end end ``` ##やり方 始めにviewの一部を変えていきます。 ti
クラスとインスタンス
#クラスとは?
設計図や料理のレシピのような物です。新しい物を作るのにその度に一から作るのは手間と時間がかかります。
それを避けるために、共通のルールを守った上で個別のデータを作ることが出来るようにする物です。
クラスは共通の処理と属性を決めるだけで、単体でデータを扱うことはできません。“`
class クラス名
# 変数やメソッドの定義
end
“`今回はジャムを作るJamクラスを定義して見ましょう。
“`
class Jamend
“`##インスタンスとは
実際に作られる『もの』のことです。
クラスを定義しましたがクラスだけでは何のデータも持ちません。
データを持つインスタンスをクラスから生成します。
クラスは定義しなくてもnewというメソッドを始めから持っていてこれを実行することで
データを持つインスタンスが生成されます。インスタンスを生成したあとからデータを追加したり、メソッドを実行できるようにするために
変数に代入して作ります。“`
変数名 = クラス名.new
“`実際にインスタンスを生成してみると
“`
class Jam
fizz_buzz問題で使用された表現
# 前回投稿したfizz_buzz問題
記述を見ていると基礎的な表現が多い様に感じたので、
実際に使われたいた表現に関して整理してみる。
[fizz_buzz問題解説](https://qiita.com/iamu_TECH_CAMP/items/8253c8b123c20b8343c6)“`ruby:fizz_buzz問題
def fizz_buzz
num = 1
while (num <= 100) do if num % 15 == 0 puts "FizzBuzz" elsif (num % 3) == 0 puts "Fizz" elsif (num % 5) == 0 puts "Buzz" else puts num end num = num + 1 end end fizz_buzz ``` ## 代入演算子 ```ruby:代入演算子 num = 1 # 変数名 = 格納する値 ``` - 上記の記述による作用 - `代入`と呼ばれる記述を用
【Rubyトリビア】elsif の条件式は省略可能!?
Rubyのif文ではelsifを使って複数の条件を書くことができます。
“`ruby
def greet_to(name)
if name == ‘Alice’
puts ‘Hi, Alice!’
elsif name == ‘Bob’
puts ‘Hi, Bob!’
end
endgreet_to(‘Alice’)
#=> Hi, Alice!greet_to(‘Bob’)
#=> Hi, Bob!
“`それでは次のようにelsifの条件式を無くすとどうなるでしょうか?
“`diff
def greet_to(name)
if name == ‘Alice’
puts ‘Hi, Alice!’
– elsif name == ‘Bob’
+ elsif
puts ‘Hi, Bob!’
end
end
“`答えはこうです。(あれ、さっきと同じ!?)
“`ruby
greet_to(‘Alice’)
#=> Hi, Alice!greet_to(‘Bob’)
#=> Hi, Bob!
Rubyでハッシュをうまく使って注文の合計金額を計算する
この記事ではmacOSにインストールしたRuby2.6.3を使っています。
ゼロからわかるRuby超入門の練習問題(p176)を自分なりの解き方をしたのでメモします。
キーはシンボルで書くものだという思い込みがあったので、最初この方法での解き方ができませんでした。ハッシュの使い所を見極める力が必要だと感じました。問:メニューは、コーヒー300円とカフェラテ400円の2つがあり、サイズはショートだと+0円、トールだと+50円、ベンティだと+100円になる。メソッドを使って注文をとってください。
“`ruby:ターミナルから注文がとれるバージョン
def price
puts “ご注文は何にしますか?”
item = gets.chomp
puts “サイズは何にしますか?”
size = gets.chomp
items = {“コーヒー” => 300, “カフェラテ” => 400}
sizes = {“ショート” => 0, “トール” => 50, “ベンティ” => 100}
total = items[item] + sizes[size
Railsで個人開発してたら、Railsがめっちゃ叩かれて辛みだった話
こんにちは、だむはです。
去年の12月に個人開発している「sister」というサービスをリリースしたのですが、開発中にRails叩きがおこり、辛みだったので、その時のことをかこうと思います。ちなみに、サービスはまだベータ版です。
##「sister」ってどんなサービス?
「sister」は一言で言うと、IT業界に特化した女性向けのキャリア/スキルシェアサービスです。MENTAから多大なる影響を受けています。MENTAは「師弟関係」、sisterは上下関係をもたない「姉妹関係」と言う部分でシスターフット大切にしていこう!って感じです。興味があったらみてってください。
[あなたのsisterを探そう](https://sisterwith.com)##環境
sisterの開発はこんな感じです。
・Ruby
・Rails
・Stripe
・AWS S3
・Heroku
ちなみにローカルはDockerです。はい、フロントエンドにモダンな技術も使ってないし、インフラもAWS使ってないです
##なぜこの環境なの?
それは、純粋に私一番使える言語がRailsだったからです!
Rubyで文字列の出現回数を数える
この記事ではmacOSにインストールしたRuby2.6.3を使っています。
ゼロからわかるRuby超入門の練習問題(p154)を自分なりの解き方をしたのでメモします。
1対1対応しているものについてはハッシュをうまく使う必要があると気づいた。問:文字列”caffelatte”の中で使われているアルファベットとその回数を数えてください。
“`ruby
hash = {}
hash.default = 0#文字1つ1つを配列にしてアルファベット順に並び替える
array = “caffelatte”.chars.sort#文字をキー,回数を値としたhashをつくる
array.each { |x| hash[x] += 1}#最後に文字が何回使われていたかを表示する
hash.each { |letter, count| puts “#{letter}は#{count}回使われている”}
“`
RubyでJSの即時関数みたいなことをやる
ちょっと例が悪いですが、自分用メモ。
↓こんなのがRubyで書きたかった。
“`js
const filepath = (() => {
return “hoge/moge/huga”;
})();
“`別に普通に定義しても良いですが、処理部がごちゃごちゃしてくる場合は、変数の定義も処理部と切り離したいと思い、考えてみました。
“`rb
class Hoge
def initialize
@root = root
enddef filepath(path)
File.join(@root.call, path)
endprivate
def root
# pathへの代入は初期化の@rootへ代入された時のみ
path = “hoge/moge/huga”
-> { path }
end
endhoge = Hoge.new
p hoge.filepath(“a”) # => “hoge/moge/huga/a”
p hoge.filepath(“i”) # => “hoge/mo
【Rails】raty.jsを使った評価機能を作る
raty.jsを使って、railsアプリに星画像付きの評価機能を実装する方法です。jqueryが必要です。
![ 2021-01-18 21.35.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/9fb4a95b-e445-3f8a-7ef9-56f396f79280.png)
## 環境
“`zsh
$ rails -v
Rails 5.2.4.4
“`
## jqueryを導入
“`rb:Gemfile
gem ‘jquery-rails’
“`
“`zsh
$ bundle install
“`
“`app/assets/javascripts/application.js
//= require jquery
“`## jquery.raty.jsを作成
“`zsh
$ touch app/assets/javascripts/jquery.raty.js
“`
作成したファイルに、https://github.com/wbotelhos/raty
エラー解決を通してdeviseのメソッドuser_signed_in?とcurrent_userの理解が深まった話
# 開発環境
Mac OS Catalina 10.15.7
ruby 2.6系
rails 6.0系# 事の発端
転職用のポートフォリオとしてオリジナルアプリを作っていたある日のことでした。
未ログインユーザーが詳細ページに遷移するリクエストをローカルで行ったところ、以下のエラーが発生![スクリーンショット 2021-01-18 20.02.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1035658/71eea597-92e5-d91e-d3f9-47ed914b0470.png)
# 解決法
結論から言うと user_signed_in? && の条件を追加することで解決しました。
エラー時のコード
“`ruby:show.html.erb
<% if current_user.id == @post.user.id %><%= link_to '編集する', edit_post_path(@p[ruby]演算子について
## はじめに
こんばんは
私は某スクールに通っているものです
先月卒業したばかりなのですが学んだ事をアウトプットしております
前回、[Ruby]文字列で使えるメソッドを作ったので今回は演算子について触れたいと思います!##演算子とは?
演算子とはプログラミングで計算したり、比較したりする時に使う記号です
これはめちゃくちゃ使うから覚えてくださいねと言ったけどそのほとんどは小学校でやった+とかーとかばかりだから身構えなくていいかも
| | |
| —- | —-|
| + | 足し算 |
|-| 引き算 |
| *| 掛け算 |
| / | 割り算 |
| %| 余剰 |
|**| べき乗|
|Math::PI |円周率(π)を合わせる定数|
|Math.sqrt|平方根を求める|ぶちゃけ、べき乗以下は半年プログラミング学習してたけど使わんかったから頭の隅に置いておいてください
“`
=> nil
irb(main):115:0> 1 + 1
=> 2
irb(main):116:0> 1 – 1
=> 0
irb(main):1テーブルにカラムを追加する方法
今回はmigrateファイルの記述をして追加する方法を実行します。
#migrateファイルを編集
まず、README.mdを参考にmigrateファイルを編集します。“`README.md
## items テーブル| Column | Type | Options |
| —————– | ———- | —————– |
| name | string | null: false |
| explanation | text | null: false |
| category_id | integer | null: false |
| state_id | integer | null: false |
| delivery_price_id | integer | null: false |ActiveRecord_RelationとCouldn’t find Item without an IDのエラーについて
# まず、ActiveRecord_Relation:とは
例えばコントローラーで
“`ruby
def index
User.all
end
“`
と定義した場合
Use.allで持ってきたもののことを言います。
この時、allはレコードとカラムの情報のみを持ってきます。# Couldn’t find Item without an IDとは
要約するとIDが取得できませんよ。という意味
例えばコントローラーで
“`ruby
def index
User.find(params[:id])
end“`
と定義したとします。
この時paramsの[:id]の部分が取得できません。ということになります。
# 状況
– このようなエラーが出る場合はどんな時か?
それはルーティングにネストをしていて、親になっているものから情報を取得しようとした場合である。
– なぜか?
シークエルプロなどでテーブルを確認すれば一目瞭然。
子要素に親要素の情報は入っていないから。この時、allはレコードとカラムからとってくるという記述の意味がわかります。
RSpec~Taskモデルのバリデーションテスト作成まで
#RSpecとは
Rubyにおけるテスティイングフレームワークのことです。Rubyでは標準で`Minitest`という別のフレームワークがあります。[Ruby on Railsチュートリアル](https://railstutorial.jp/)でも`Minitest`でテスト方法を教わります。
ですが、実際に現場で使われているテスティイングフレームワークは`RSpec`が圧倒的に多いようです。本記事では`RSpec`をインストールし、既に定義されているモデルに対してバリデーションテストするまでを記載します。
#使用技術のバージョン
・Ruby: 2.6.4
・Ruby on Rails: 5.2.3#モデルの概要
今回取り扱うモデルは`user`モデルと`task`モデルです。*[userモデル]*
“`ruby:app/models/user.rb
class User < ApplicationRecord has_many :tasks, dependent: :destroy validates :password, length: { miChefの概要を分かりやすく書いてみました
最近の現場で初めて、chefを使用しました。
あまり情報が少ないため、概要を書いてみました。
# Chefとはいったい??
![200px-Chef_logo.svg.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/355517/44db6e08-dcfc-e265-f329-b901e9ec8eb3.png)ウィキペディアにはこう書かれていました。
#### RubyとErlangで記述された構成管理ツールである
ん??どういうこと??
すごく簡単に言えば、
#### chefはインフラ構築を自動化できるプラットフォームなのです。
# Chefを使用するメリット
Chefでインフラの構成を自動化すれば、環境構築時にすべて自分で用意する必要はありません。
繰り返し作業を集約でき、無駄な時間を減らせます。
大規模のプロジェクトによく使われるようです。# ChefはRubyで書かれる
ChefはRubyで書けるため、Rubyの基礎知識が必要となります。
# Chefの主な構
railsでほぼ静的なページの作り方
>引用先
>[Railsチュートリアル](https://railstutorial.jp/)※ rails new appをしている状況で新しくページを追加するところからです
#ターミナルでコマンド実行
まずは作業ディレクトリへ移動
“`
cd ~
“`移動後コマンド実行
“`
$ rails generate controller <コントローラ名> <アクション名> <アクション名> ・・・# 例
$ rails generate controller StaticPages home help
“`
上記コマンドを実行すれば・コントローラの作成
・ルーティングの設定
・ビューファイルの作成
を自動で作成してくれるので非常に便利かつ簡単ですね!実際これだけでページは作れちゃいます。
#新たにページを追加したいとなった時
例えば、新たにaboutページを作成したいとなった時に、手動でファイルを作成したりコードを書けば追加もできます。##手順
①ルーティングの設定
②コントローラにアクション追加
③ビューファイルの作成###①ルーティング
必ず役に立つ!Ruby on Railsでの開発で使えるデバッグコード
# こ~れなんなん、これなんなん
こんにちは。開発で最も必要とされる技術ってデバッグ力だと思っています。特にバグを大量生産することが得意な僕にとって、デバッグ力はとても大事。
そこで、普段開発で使ってるデバッグ用のコードをまとめておこうかと思います。
## デバッグコード
Ruby on Railsで使える、デバッグで役に立ちそうなコードの一覧を書いていきます。なお、Rubyで使えるコードもあります。byebug起動時や`rails console`で使用することを想定しています。byebugの使い方よく分からんて人は以下の記事で使えるようにしてください。
https://web-nari.net/2018/03/16/byebug/### メソッド一覧
`hoge`という変数の参照できるメソッドの中で、メソッド名に`method_name`が含まれるメソッドの一覧を返します。“`ruby
hoge.methods.select {|name| name.to_s.include?(“method_name”) }
“`### メソッド定義場所
`hoge`Rails 記事詳細リンクは、ループ内でしか機能しない?
## 背景
Page#homeで記事一覧(Posts#index)を表示し、そこに記事詳細(Posts#show)をリンクを貼った。そのときに学んだ事の備忘録。## 結論
記事詳細リンクはこう貼った。(成功したコード)
“`ruby
<% if @posts.any? %><% @posts.each do |p| %>
#記事詳細のリンク↓
++<%= link_to post_path(p), class: 'text-body' do %><%= image_tag p.image.url, class: 'img-fluid' %><%= p.title %>
<%= p.tag %>
<% end %>
<% end %>wrong number of arguments (given 1, expected 0)
いくつかエラー原因はあるかと思いますが、僕の場合は、paramsと[:id]の間にスペースが空いているという事でした。
“`ruby
#スペースが空いている
@post = Post.find(params [:id])
“`エラーが消えた。
“`ruby
@post = Post.find(params[:id])
“`関連する記事
OTHERカテゴリの最新記事
-
- 2024.09.19
JavaScript関連のことを調べてみた
-
- 2024.09.19
JAVA関連のことを調べてみた
-
- 2024.09.19
iOS関連のことを調べてみた
-
- 2024.09.19
Rails関連のことを調べてみた
-
- 2024.09.19
Lambda関連のことを調べてみた
-
- 2024.09.19
Python関連のことを調べてみた