Ruby関連のことを調べてみた2022年10月17日

Ruby関連のことを調べてみた2022年10月17日

railsのedit画面から確認(confirm)画面を挟んでupdateしようとしてエラーにハマった話

>どうもaono1234と申します。記事がいいなと思ったらtwitterのフォローもお待ちしております‼

## 1. エラー状況
アプリ制作中にedit画面からconfirmアクションに遷移したら`couldn’t find Feed with ‘id’=confirm`というエラーが発生してしまいました。?
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2534058/dfcdecb2-a8ff-b805-0a1c-bbe9062ef641.png)

new画面からconfirmアクションに遷移するときはこのようなエラーは発生せず遷移できたのですが…?

まず、不可解な点はidの中に通常、番号が入るところが、cofirmという文字列が入ってしまっている点です。
このとっかかりから原因を突き止めることができました。

`コード`と`confirmにパラメータ渡すときのlog`を以下に載せておきますので、皆さんも考

元記事を表示

【超簡単】Rails 日ごとに投稿をまとめ詳細ページに表示する

# はじめに
日ごとに投稿を1つのリンクにまとめ、その遷移先にその日の投稿がまとまったページを作成する方法を伝授します!
コピペだけで実装できます!
(※実装しているものと若干合わせる必要はあると思います?)

## コントローラー

“`ruby:posts_controller.rb

class TweetsController < ApplicationController def index @tweet = Tweet.new @tweets = Tweet.group("date(created_at)") end def create tweet = Tweet.new(tweet_params) if tweet.save redirect_to :action => “index”
else
redirect_to :action => “index”
end
end

def show
@date = params[:date]
@tweets = T

元記事を表示

Railsのデータベースコマンドこれさえ見れば問題なし!

## 概要
Railsアプリでデータベースをmigrateする際の有用なコマンドをこの記事にまとめる。

## migrateコマンドまとめ
### ファイル作成コマンド
– マイグレーションファイル作成
`rails g migration クラス名`
“`
$ rails g migration CreateUsers
Running via Spring preloader in process 310
invoke active_record
create db/migrate/20220913055401_create_users.rb
“`

– モデルファイル作成
`rails g model モデル名`
“`
$ rails g migration User
Running via Spring preloader in process 315
invoke active_record
identical db/migrate/20220913055401_create_users.rb

元記事を表示

WEB開発をやり始めてみる(Ruby:繰り返し処理)

# やったこと
Rubyではいろんな繰り返し処理があるようなのでメモ的なもの
使い方みたいなのはまた覚えるとして、とりあえず書いていこう

## 最初から最後まで順番に繰り返しながら実行する
for文もあるけど、今回はやらない
“`ruby:
numbers = [1,2,3,4,5]
numbers.each do |number|
puts number
end

# 一行で書くこともできる
numbers.each { |number| puts number }
“`

## 単純にn回数実行(出力)したい時
“`ruby:
#全部やっていることは一緒書き方が違うだけ
5.times do
puts ‘Hello!’
end

5.times do |i|
puts “#{i}: Hello!”
end

5.times { |i| puts “#{i}: Hello!” }

5.times { |i|
puts “#{i}: Hello!”
}
“`

## 指定した条件が真である時処理を繰り返す
“`ruby:
# 10になるまでカウントす

元記事を表示

【Rails】deviseの導入とログイン機構作成時のメモ

# deviseの導入手順
Gemfileに以下を記述。devi**c**eではなく、devi**s**eなのでご注意を。
“`ruby:Gemfile
gem ‘devise’
“`
ターミナルで以下を実行し、gemのインストール。
“`
bundle install
“`
以下のコマンドを実行し、設定ファイルを作成。
“`
$ rails g devise:install
“`
以下のコマンドを実行しモデルの作成とマイグレート
“`
$ rails g devise user

$ rake db:migrate
“`

ログイン機構が表示されるかどうかを確認するため、以下のようなviewをapp/views配下に作成してみる。

“`erb:home/show

HOME

<% if user_signed_in? %>

メールアドレス: <%= current_user.email %>

<%= link_to "ログアウト", destroy_user_session_path, method: :dele

元記事を表示

単体テストコード(userモデル)記述の流れ

# はじめに
単体テストコードを実行する流れをまとめる

# 単体テストコード実行流れ
## 1.テストコードを記載するファイルを作成する。
% rails g rspec:model user
(Userモデル用のテストファイルを作成できる。)

「create spec/models/user_spec.rb」と記載が出れば問題ない。

<補足>
RSpecでモデル、ビュー、コントローラーのテストを行うためには、rails_helper.rbというファイルを読み込む必要があるため、
上記で作成したテストファイルの1行目にはrequire ‘rails_helper’と記述されている。

## 2.テストコードを記載

#userモデルの単体テストコードの一例(spec/models/user_spec.rb内)

require ‘rails_helper’

RSpec.describe User, type: :model do
before do
@

元記事を表示

WEB開発をやり始めてみる(Ruby:Cloud9環境構築)

# 目的
web開発としてRubyの学習を始めてみる。
環境はCloud9で作成しています。

# やったこと
“`ruby
### 環境を整えます
$ sudo yum update && sudo yum upgrade
“`
“`ruby
### バージョンを指定します(3.0.2)
$ rvm -v
rvm 1.29.8 (1.29.8) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]

$ rvm get stable
Downloading https://get.rvm.io

$ rvm install ruby-3.0.2
Searching for binary rubies, this might take some time.

$ rvm list
* ruby-2.6.3 [ x86_64 ]
=> ruby-3.0.2 [ x86_64 ]

$ rvm use 3.0.2
Using /home/ec2-user/.rvm/gems/ruby-3.0.2

元記事を表示

WEB開発をやり始めてみる(Ruby:条件分岐&メソッド)

# 目的
Rubyの学習でまずは基礎文法のやり直し
ほとんど忘れているため、メモとして残して見直せれるように

# やったこと
### if文
“`ruby:
score = 90
if score >= 90
puts”A”
elsif score >= 80
puts”B”
elsif score >= 70
puts”C”
else
puts “D”
end

$ ruby hello.rb
A
“`
### case文
“`ruby:
frute = “banana”

case frute
when “banana”
puts”イエロー”
when “Apple”
puts”レッド”
when “orange”
puts “オレンジ”
else
puts”それ以外”
end

$ ruby case.rb
イエロ-
“`
### メソッド
“`ruby:
def cry( animal)
if animal==”cat”
“にゃー”
else
“????”
en

元記事を表示

WEB開発をやり始めてみる(Ruby:FizzBuzz)

# やったこと
### FizzBuzz
“`ruby:
def fizz_buzz(n)
if n % 15 == 0
“FizzBuzz”
elsis n % 3 == 0
“Fizz”
elsis n % 5 == 0
“Buzz”
else
n.to_s
end
end

puts(1)
puts(2)
puts(3)
puts(5)
puts(15)
“`
# まとめ
### 15が先にあるのは、仮に3が上にあると3が該当するため、15を先に入れている。
“`ruby:
def fizz_buzz(n)
if n % 15 == 0
“FizzBuzz”
“`
### n.to_sは「n」に対して数値で返すメソッド(.to_s)
“`ruby:
else
n.to_s
end
“`

元記事を表示

WEB開発をやり始めてみる(Ruby:配列+いろんなメソッド)

# やったことメモ
配列を使ったメソッドの使い方のまとめ
“`ruby:
$ irb
#### 配列の書き方
2.5.0 :001 > a = [1, 2, 3, ‘aa’, [1, 2, 3]]
=> [1, 2, 3, “aa”, [1, 2, 3]]

#### 配列の表示の仕方
2.5.0 :002 > a[0]
=> 1
2.5.0 :003 > a[1]
=> 2
2.5.0 :004 > puts a
1
2
3
aa
1
2
3
=> nil

#### 配列の中身が空かどうか
2.5.0 :005 > a.empty?
=> false
2.5.0 :006 > b = []
=> []
2.5.0 :007 > b.empty?
=> true

#### 配列の中身に〇〇が含まれているか
2.5.0 :008 > a.include?(‘aa’)
=> true
2.5.0 :009 > a.include?(‘b’)
=> false

#### 配列の中身を逆順に表示(!を使うと破壊的メソッドといって、元の中身を書き換える)

元記事を表示

WEB開発をやり始めてみる(Ruby:ハッシュ)

# やったこと
“`ruby:
### ハッシュの作り方
scores = {luke: 100, jack: 90, robert: 70}
puts scores
{:luke=>100, :jack=>90, :robert=>70}

### eachを使った変数の代入と出力
scores.each { |k, v| puts v}
100
90
70

### eachを使った変数の代入と出力
scores.each { |k, v| puts “#{k}, #{v}” }
luke, 100
jack, 90
robert, 70

## if文を使った点数の指定以上だけを出力
scores.each { |k, v|
if v >= 80
puts “#{k}, #{v}”
end
}

luke, 100
jack, 90

scores.keys
=> [:luke, :jack, :robert]

scores.values
=> [100, 90, 70]

scores.has_key?(:luke)

元記事を表示

Fly.ioでデプロイする手順(Window)

# STEP1:Gitを利用できるようにしよう

Gitを利用するためにユーザー名とemailを登録する必要があります。
以下のコマンドの”名前”と”メールアドレス”の部分を変更して、実行してください!
名前は自分の氏名のローマ字で大丈夫です。

“`ruby:ターミナル
git config –global user.name “名前”
“`

“`ruby:ターミナル
git config –global user.email “メールアドレス”
“`

# STEP2:リリースするための準備を仕込もう
“`ruby:ターミナル
cd desktop
cd (自分のアプリのフォルダ名)
“`
## Gemfileの編集
まず、「gem ‘sqlite3’, ‘~> 1.4’」と書いてある行(9行目付近にあります)を
コメントアウトしましょう。
(これらは、自分のパソコンの中のrails app内で用いるデータベースのgemです。) 

#変更前
![8-2-1.png](https://qiita-image-store.s3.ap-northeast-1.

元記事を表示

【解決済】CORS設定でOPTIONSリクエストとヘッダが取得できない

実装中に対応した内容を備忘録として投稿します。

## 発生した問題
フロントエンド(Nuxt.js)から、バックエンド(Rails)に対して、APIリクエストを投げるとCORSエラーが発生。

“`
Access to XMLHttpRequest at ‘http://localhost:3000/users/1’ from origin ‘http://localhost:8080’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.
“`

## 原因
– ブラウザ側のセキュリティが強化されていて、意図しない挙動を防ぐために実装されている。
– もし仮に、ハッキングされるなどすると、
– フロントエンドとバックエンドでサーバーやドメインが別れている場合に、悪意のあるドメインにすり替えるなどができてしまう。
– 会員制サイトでログインするときに、ログインIDやパスワードを盗むことができてしまう

元記事を表示

今まで知らなかった開発で使用するメソッドをまとめてみた!

## なぜ記事を書こうと思ったか
Railsアプリの開発をする際に適切なメソッドを調べる時がある為、今まで知らなかった開発で使用するメソッドを中心にこの記事にまとめようと思います。

## railsメソッド一覧
### Regexpクラス

– escapeメソッド
メタ文字をエスケープした結果を返す。

“`
pattern = Regexp.escape(‘1+2=3,2*3=6’)
p pattern
# ‘1//+2=3,2//*3=6’
“`

### Stringクラス
– subメソッド
文字列中で pattern にマッチした最初の部分を文字列 replace で置き換えた文字列を生成して返す。

“`
greeting = “I am name. My favorite food is meet.”
pattern = { “name” => “James”, “meet” => “beef” }
replaced = article.sub(/name|meet/, pattern)

p replaced # “I am James. M

元記事を表示

【備忘録】【Rails】before_actionとは

11月からRailsを実務で使うことが決まったので、これから学習したことを備忘録に残していきます。

今日は【before_action】について。

▼ 参考にさせていただいた記事
[pikawaka 【Rails】 before_actionの使い方とオプションについて](https://pikawaka.com/rails/before_action)

# before_actionとは
コントローラの各アクションが実行される前に、何らかの処理を行いたい時に使用するもの。
フィルタの一つ。フィルタとは、コントローラにあるアクションの直前や直後、または直前と直後の両方に実行されるメソッドのことをいい、Railsには様々なフィルタが用意されている。

“`rails:before_actionの使用例
class UsersController < ApplicationController before_action :メソッド名 end ``` これをコントローラーファイルの上部に記述しておくことで、コントローラーのアクションが動く前にメソッドが実行されて、そのあとでア

元記事を表示

インデントを減らすコマンド

# はじめに
余計につけてしまったインデントを減らす方法を記録します。

## 対処法
shift + tab キーでインデントを減らすことができます。

元記事を表示

HTMLの基礎知識(コメント機能で動画を投稿)

みなさんこんにちは!!
今回はYouTude投稿とコメント機能の応用した機能になります!!

**STEP1:モデルを作成しよう!**

“`ruby:ターミナル
rails g model Youtubecomment content:string user:references register:references
rails generate migration AddYoutubeUrlToRegisters youtube_url:string
rails db:migrate
“`

**Step4: helperにメソッドの定義**
“`ruby:helpers/registersHelper
module RegistersHelper
def find_youtube_url(youtube_url)
if youtube_url[0..16] == “https://youtu.be/”
return youtube_url[17..27]
# “https://youtu.be/WGiUk8VakxQ” 11桁の

元記事を表示

成果物を作る為の計画

## 成果物を作る為の下準備

### 自問自答

– Q, どの様な成果物を作りたいのか?
 
A, 自分の経歴や自己紹介、現状のスキルなどを
  テキストや動画を使って説明出来るアプリの作成したい

– Q, どの様な言語で?なぜその言語なのか?

A,   言語はRubyでフレームワークはRubyと相性の良いRuby on Railsを
    使おうと思います.プログラミングスクールの課題でRubyを扱っていて
   多少の知識はあるのでRubyをある程度マスターしてから他の言語も学習
   していきたいと思っています。
  
– Q, なぜRubyで成果物を作る必要があるのか?

A,  プログラミングスクールではRubyの基礎の知識とどの様に進めていけば
  作りたいものが作れるかのプロセスを学んだので今回は自分で全て考えてタスクを
  言語化+細分化し作成することでRubyの言語を理解出来ている事を証明し転職活動時
  のポートフォリオとして使いたい

– Q,どの様な順序で進めていけば効率良く作業できるか?

 

元記事を表示

【解決済】rails sが起動しなくなった

`rails s`が動かない現象に遭遇したので、備忘録として投稿します。

## 発生した問題
下記エラーにより、`rails s`が起動しなくなった。
“`
% rails s
=> Booting Puma
=> Rails 6.1.5 application starting in development
=> Run `bin/rails server –help` for more startup options
Exiting
bin/rails:7: warning: already initialized constant APP_PATH
/Users/xxxx/workspace/app/bin/rails:7: warning: previous definition of APP_PATH was here
The most common rails commands are:
generate Generate new code (short-cut alias: “g”)
console Start the Rails conso

元記事を表示

Rails I18n(国際化)のymlファイル内からの取り出しについて

## Rails I18n について理解したことをまとめます。
### 今回行いたかったこと
– I18nを利用して、Railsのviewファイル内の翻訳

## I18n導入について
– まず、I18nを導入する際に、config/application.rb内に以下のコードを追加します。

“`
config.i18n.load_path += Dir[Rails.root.join(‘config/locales/**/*.{rb,yml}’)]
config.i18n.default_locale = :ja
“`

## ymlファイルの作成
– 次にconfig/locales内に、ja.ymlファイルを作成します。
– 自分の場合は、view用にja.ymlを分割したかったので、config/locales/view/モデル名/ja.ymlとしました。
– 作成が完了しましたら、ja.yml内に翻訳したい言葉と翻訳後の言葉を記載していきます。

“`
ja:
defaults:
Tasks Index: ‘タスク一覧’
New Task: ‘タス

元記事を表示

OTHERカテゴリの最新記事