- 1. 【Rails】gem’RSpotify’を利用し、SpotifyAPIからアーティスト情報を取得する検索機能を作成する
- 2. rails チュートリアル2週目~ヘルスケアwebサービスを自分で作る医者の日記~
- 3. RailsでmySQLを使ってgem:deviseを実装する
- 4. コード書いたことないPdMやPOに捧ぐ、Rails on Dockerハンズオン vol.3 – Scaffold, RESTful, MVC –
- 5. Rails データの取得方法
- 6. Rails モデル
- 7. 【Rails】Sorceryでfacebook認証 エラーと解決法
- 8. 【Rails】Sorceryでfacebook認証 Sorceryの設定
- 9. Rails ビュー
- 10. 【Rails】DBのカラムにインデックスを付与する/しない場合での速度比較をしてみた
- 11. Rails コントローラー
- 12. Rails ルーティングについて
- 13. Railsの基礎
- 14. 発言(post)をroleカラムを使い分ける
- 15. 【Rails】railsブログサイトの練習で躓いたところメモ
- 16. Heroku + Rails + S3でサイトマップを設置
- 17. Railsチュートリアル 第14章 ユーザーをフォローする – followingアクションおよびfollowersアクションの統合テストに存在する不具合の修正
- 18. [rails,html]文字省略〜続きを読む実装〜
- 19. 【Raila】SorceryのExternalを使用してSNSログインを実装(Facebook認証)
- 20. herokuにデプロイした際にCSSで指定した画像が表示されない
【Rails】gem’RSpotify’を利用し、SpotifyAPIからアーティスト情報を取得する検索機能を作成する
#概要
Railsアプリケーションにて、SpotifyAPIを利用し、検索機能を実装します。
SpotifyAPIのラッパーであるRSpotifyというgemを利用する方法になります。#SpotifyAPIへアプリの登録
SpotifyAPIを利用するにはアカウントを作成し、デベロッパー用のダッシュボードで連携するアプリを登録する必要があります。
アプリを登録すればAPIへアクセスするためのIDが取得できます。ユーザーアカウントの登録を行う。
https://www.spotify.com/jp/アカウント作成完了後にデベロッパー用のダッシュボードへ。
https://developer.spotify.com/“CREATE AN APP”をクリック。
アプリケーション名とアプリケーションの説明を英語で記載し、
アプリの種類は何かをチェックしてください。
商用かどうかが確認されますので、いずれかを選択。
今回はNoを選択しました。作成完了すれば、
“CLIENT ID”と”CLIENT SECRET ID”が発行されます。
“CLIENT SECRET ID
rails チュートリアル2週目~ヘルスケアwebサービスを自分で作る医者の日記~
railsチュートリ
の3章初めからてこずった最初sqlite3 をsqlite とgemfileに書いて
失敗
その後 書き直して add commit heroku にpushするもデプロイできず
“`
heroku run rails
“`
するも“`
Specified ‘sqlite3’ for database adapter, but the gem is not loaded. Add `gem ‘sqlite3’` to your Gemfile (and ensure its version is at the minimum required by ActiveRecord). (Gem::LoadError) heroku
“`
となる。
herokuはsqlite3いらないんじゃなかったの?
bundle install –without production でsqlite3はのぞいているのに“`
remote: ###### WARNING:
remote:
remote: Detecting rails
RailsでmySQLを使ってgem:deviseを実装する
こんにちは
Railsでポートフォリオを作るときに、mySQLを使ってさらにdeviseを導入してログインなどのシステムを導入したい
そんな人たちに、自分が使ったやり方を自分の復習も込めて書きます。
まずは、データベースにmySQLを使っている、railsプロジェクトを作る
$rails new プロジェクト名 -d mysql
造られたプロジェクトのgemfileに
gem ‘devise’
を記述する。
ここまで書いたら、下記のコマンドを実行して、gemファイルを読み込みます。
$bundle install
まずはここまでで一セット。そして、間髪入れず第二セットいきます。
gem:deviseの関係ファイルをプロジェクトに作ります。このとき、先ほどの作ったrailsプロジェクトのフォルダに移動しておいてください。
$ rails generate devise:install
上記のコマンドを実行すると下記のような文章が出てきます。
============================================================
コード書いたことないPdMやPOに捧ぐ、Rails on Dockerハンズオン vol.3 – Scaffold, RESTful, MVC –
この記事はなにか?
この記事は私が社内のプログラミング未経験者、ビギナー向けに開催しているRuby on Rails on Dockerハンズオンの内容をまとめたものです。ていうかこの記事を基にそのままハンズオンします。ハンズオンは
1回の内容は喋りながらやると大体40~50分くらいになっています。お昼休みに有志でやっているからです。
現在進行形なので週1ペースで記事投稿していけるように頑張ります。
ビギナーの方のお役にたったり、同じように有志のハンズオンをしようとしている人の参考になれば幸いです。
他のハンズオンへのリンク
・ [Vol.1 – Introduction -](https://qiita.com/at-946/items/ffc0ebcc4d08f958197b)
・ [Vol.2 – Hello, Rails on Doc
Rails データの取得方法
![a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/576859/2f43199e-2597-eb97-71b7-3e7f7c07d1a9.png)
ActiveRecord クラス
–
テーブルから情報を取得するために必要なメソッドを兼ね備えたクラス。all(テーブルの全てのデータを取得)、find(テーブルのレコードの内、ある1つのデータを取得)、new(クラスのインスタンス(レコード)を生成)、save(クラスのインスタンス(レコード)を保存)がある。
![a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/576859/5fd33bbc-839f-9dad-e0b7-24d25eb7ed0e.png)
例 変数@ postに1番目のレコードのデータを代入
![a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/576859/acd
Rails モデル
モデル
–
Railsの中でデータベースへのアクセスをはじめとする情報のやりとりに関する処理のこと。
![あ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/576859/3a1b13f3-ea63-4e94-81b6-5e4eaa666ac8.png)
モデルの作成
–
rails g model モデル名でモデルを作成できる。
例 rails g model post # モデルを作成する
作成されたファイルはapp/models/post.rbにある。
また、これでマイグレーションファイルも作成される。
マイグレーションファイル
–
テーブルの設計図・仕様書のこと。
![a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/576859/b4b0278a-9557-bd2f-af0a-2dc907454dea.png)
![a.png](https://qiita-image-store.s3.ap-northeast
【Rails】Sorceryでfacebook認証 エラーと解決法
# はじめに
Sorceryによるfacebookログイン認証をしようとして、盛大なエラー祭りになりました。
誰かのための逆引き辞典になればいいなと思い、記録します。
ざっくりとした流れについては[別記事](https://qiita.com/aiandrox/items/ca798da0bca617074795)で書いています。## 動作環境
“`
ruby 2.6.5
Rails 5.2.3
sorcery 0.14.0
mkcert 1.4.1
“`# エラーとその解決法
## ArgumentError in Hogehoge
> ArgumentError in BoardsController#index
No a
【Rails】Sorceryでfacebook認証 Sorceryの設定
# はじめに
mkcertとSorceryの拡張機能を用いて、facebook認証機能を追加しました。
Sorceryのwikiが少し古かったり、facebook for developersとの連携に苦戦したので、備忘録がてら書いておこうと思います。
また、設定に不備があった場合のエラーについては[別記事](https://qiita.com/aiandrox/items/0bd2877820bc779c96e4)で書いています。## 動作環境
“`
ruby 2.6.5
Rails 5.2.3
sorcery 0.14.0
mkcert 1.4.1
“`## 前提
– sorceryによるログイン機能
– mkcertでのHTTPS通信を許可
– facebook for developersで「facebookログイン」の作成は済ませていることとします。
この辺はggれば死ぬほど出てくるので問題ないと思います。# 簡単な流れ
[Sorceryのwiki](https://github.com/Sorcery/sorcery/wiki/External)
Rails ビュー
ビューファイル
–
レスポンスとして返す見た目を設定する。アプリケーションの見た目を定義するファイルのこと。
ビューファイルはapp/views/コントローラー名ディレクトリに、アクション名.html.erbというファイル名で作成される。
![a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/576859/be453bcf-9dcd-e3f6-74e0-e97798d23993.png)○○.html.erb ファイル
–
HTMLの記述方法に加え、Rubyのコードを埋め込むことができるファイルのこと。
ビューファイル作成
–
今回はindexアクションに対応するファイルを作成する前提で進めます。なのでindex.html.erbとする。index.html.erbの中身に記述するとその内容が表示される。
コントローラーにインスタンス変数を定義
–
コントローラーのアクション内にインスタンス変数を定義すると、その内容をビューファイルで表示できる。
例
![a.png](https://qiita-i
【Rails】DBのカラムにインデックスを付与する/しない場合での速度比較をしてみた
## はじめに
RailsでDBにインデックスを付与するメリットを体感するために、試験的に1万件のレコードを作成し、**インデックスの有無**で実行速度の比較をしてみました。今回のケースでは**およそ18%の速度UP**という結果が出ています:point_up:
※サクッと作成するため、DBはRailsのデフォルトである**SQLite3**を使用しました。> 2020/02/07追記
10万件のレコードだと20倍の差が出ていることを確認し、結果を追記しました。
@error_401 さんありがとうございます。## 環境
“`yaml
OS: macOS Catalina 10.15.3
zsh: 5.7.1
Ruby: 2.6.5
Rails: 6.0.2.1
“`## 事前準備
“`shell:rails_newする
$ rails new sampleapp
“`“`shell:sampleappディレクトリに移動
$ cd sampleapp
“`“`shell:db_createする
$ rails db:create
“`“`
Rails コントローラー
コントローラー
–
ルーティングで振り分けられたリクエストを実際に処理する。
![a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/576859/a73ed77e-13e1-ce49-6d44-b4829f68163f.png)
① ルーティングがリクエストを受け取った際、対応するアクションを動かす
② 必要であればデータベースとやり取りをする
③ レスポンスとして返すビューを決める
![a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/576859/fd649ca3-6394-ae37-3f8d-d57c44c0be02.png)
アクション名は主に7つ。index(一覧表示ページを表示する)、new(新規投稿ページを表示する)、create(データの投稿を行う)、show(個別詳細ページを表示する)、edit(投稿編集ページを表示する)、update(データの編集を行う)、destroy(データの削除を行う)。
コン
Rails ルーティングについて
ルーティング
–
リクエストの行き先を指定する。
![a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/576859/c82b6e54-48b4-0921-3215-7bc339d79bea.png)
![a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/576859/d024b1af-1c72-1712-049f-5bcd2597f71f.png)
ルーティングの記述
–
configディレクトリの、routes.rbに記述する。
以下のように記述する。
Rails.application.routes.draw do
[HTTPメソッド] ‘[URIパターン]’, to: ‘[コントローラー名]#[アクション名]’
end
HTTPメソッド
–![a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/576859/d4029127
Railsの基礎
基礎を学習する方にオススメです。
1.rails new
–
Railsで新規アプリケーションを作成する際に使用する。
rails new アプリケーション名 -オプション名
仮にオプションに-d mysqlを使用したら、MySQLというデータベースに最適化された設定でアプリケーションが生成される。
例
rails _5.2.3_ new my_sample -d mysql
これでRailsのバージョン5.2.3を用いて、「my_sample」を「-d」オプションでMySQLを指定して作成。
正しくファイルが読み込まれているか確認
–
pwdで現在のディレクトリパスを指定
bundle installで関連ファイルが読み込まれているか確認。
2.データベースを作成する
–
現在の状態は、データベースが無い状態なので作成する。
rails db:createで作成できる。
このコマンドはdatabase.ymlというファイルの内容に基づいてデータベースを新規作成する。
database.yml(データベース・ヤムル) ファイル
–
Railsは運用環境ごとにデータベースを持つので、運用
発言(post)をroleカラムを使い分ける
##トークルームにて発言を分ける際にやった事のメモです。
今回作ったのが、自作自演でLINEのようなチャットルームにて一人で交互に発言出来るアプリです。
その際にやった事は、roleカラムを作り・role 0 なら Aさん
・role 1 なら Bさんと分ける事で実装しました。
##では実際にコードなどをみていきましょう。
まず発言を投稿するformです。
memo_room_idに紐づいた、memo_room_postとなるように、
memo_room_idを取れるようにmemo_room_postをルーティングでネストしてあります。def new
@memo_room = MemoRoom.find(params[:memo_room_id])
@memo_room_post = MemoRoomPost.new
@memo_room_posts = @memo_room.memo_room_posts MemoRoomインスタンスのデータに紐づいた、memo_room_postsのデータ
@memo_room_p
【Rails】railsブログサイトの練習で躓いたところメモ
railsチュートリアル+αでブログサイトを作成していて躓いたところをまとめました。
#環境
– ruby on rails
– mysql
– redis
– docker
– macOS#作ってみて
railsのブログアプリを作ること自体はそこまで難しいものではありませんでした。
ただデータベース周りがややこしくてそこにかなり時間をとられてしまったことが今回の反省点です。#Rails deviceを使ってユーザー関連機能を作る
ブログアプリにまず必要なのはユーザー関連のあれこれです。Railsはその辺かなり楽に作れるdeviceというgemがあります。deviceを利用するとログイン認証やアクセス制限などが簡単に実装出来ます。今まで練習も兼ねてユーザー関連は自分で作ってたのですが、一度こういった機能を知ってしまうと戻れなくなってしまいますね。
ここはそこまで詰まらなかったので以下の参考サイトを見れば大丈夫だと思います。
view関連なども「Rails device view」とかで調べたらたくさん出てきます。
【https://qiita.com/Hal
Heroku + Rails + S3でサイトマップを設置
Herokuを使うと、サイトマップの設置がめんどいです。
レンタルサーバー時代はweb上の適当なツールで自動生成して、FTPでアップロードするだけの超単純な作業だったのですが、今回は色々と大変でした。とは言えやり方がわかってしまえばそこまで大変な作業ではないので、今後のために手順をまとめておきます。
##全体の流れ
– AWSのアカウントを作る
– S3のバケットを作る
– アクセスキー、シークレットアクセスキーを取得する
– 環境変数を登録する
– gemをインストールする
– サイトマップ用の設定ファイルを作る
– ルーティングを追加する
– サイトマップをS3にアップロードする
– robots.txtを編集する
– Google Search Consoleにサイトマップの場所を登録する環境変数登録の部分から説明していきます。
アクセスキーの取得までは、「S3 バケット作成」等でググって頑張ってください。##環境変数を登録する
ローカル、Herokuそれぞれに、以下の3つの環境変数を登録します。
`AWS_ACCESS_KEY_ID`:AWSのアクセスキー
`AW
Railsチュートリアル 第14章 ユーザーをフォローする – followingアクションおよびfollowersアクションの統合テストに存在する不具合の修正
# `following`アクションおよび`followers`アクションの統合テストにおける、Railsチュートリアル本文記載のテストの不具合
実は、Railsチュートリアル本文の[リスト 14.29](https://railstutorial.jp/chapters/following_users?version=5.1#code-following_tests)に記述されているテストには、1つの不具合があります。
例えば、`app/views/users/show_follow.html.erb`に以下の欠落がある場合を考えてみましょう。
“`diff:app/views/users/show_follow.html.erb
<% provide(:title, @title) %>タグ
関連する記事
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関連のことを調べてみた