[Rails]コマンドで作る★3分BBS
Railsの復習がてらBBS作成の備忘録です。
今回初めてmysqlではなくscaffoldを使用するので
機能拡充しましたら随時更新予定です。
## 作成
“`ruby:ターミナル
$ rails new bbs
$ cd bbs
“`
## BBS作成
“`ruby:ターミナル
$ rails g scaffold テーブル名(例:articles) カラム名(例:content):string #カラムの型(今回はtext入れるのでstring)
$ rails db migrate
“`
## index作成と表示〜BBSのlinkを貼るところまで
“`ruby:ターミナル
#コントローラーを作成
$ rails g controller ディレクトリ名(例:home) index
“`
“`ruby:config/routes
Rails.application.routes.draw do
get ‘home/index’
resources :articles
root “home#index” #追記した箇所
# For deta
#はじめに
Railsチュートリアルのアウトプットも兼ねた備忘録です。チュートリアルで簡単なアプリを作った後、チュートリアル で作成した物にプラスで機能をつけたり、または0からWEBサービスを作成したりする予定です。
所詮、初心者の備忘録なので理解が間違っているところもあると思いますがよろしくお願いします。
#ユーザー登録機能
ユーザー登録機能は以下の順で行なっていく
1. HTMLフォームを使用して登録情報を送信
2. ユーザーを新規作成してDBにデータを保存
3. 保存したデータをユーザープロフィールとして表示
4. それに伴うテストも追加
#デバック
ここからはDBから取り出した情報をもとに表示する内容を変えるいわゆる「動的なページ」を作成していきます。そのため今どこのなんの情報が取り出されているのかという事がわかった方が開発の効率が上がります。その為、デバック情報を表示できるようにしておきましょう。
“`html:applocation.html.erb
.
.
.
<%= render
Ruby
Rails
初心者
Railsチュートリアル
##はじめに
Railsチュートリアル11章の内容を、少しでも理解の助けとなればと思い、割としっかり目に整理しました!
__備忘録です。__
##前提
Railsチュートリアル1〜10章までの内容が完了していること。
##内容
Railsチュートリアル11章の__アカウント有効化機能の実装手順__を、前中後半の3回に分けて整理おります。
中編である今回は、__アカウント有効化メール送信機能の実装__をしていきます!
前編→[__AccountActivationsリソースの作成__](https://qiita.com/kurawo___D/items/233ed8b4f8749c95df9e)
後編→__アカウント有効化機能の実装__
##1.アカウント有効化用のメールを送信する機能の実装
●__データのモデル化が完了したので、次はアカウント有効化メールの送信に必要な機能を記述していく__。
●__メールを送信する機能を実装するには、Action Mailerライブラリを使って、Userのメイラーを作成する必要がある__。
➡︎メイ
#初心者がrailsチュートリアル6章で学ぶべき事
1.DB Browser for SQLiteをダウンロード+基本的な使い方を理解する
2.正規表現について
3.6−3全て
##Browser for SQLiteのダウンロード+基本的な使い方の理解
ここは、僕自身かなり苦労しました笑
というのも、そもそもパソコンを使う事が苦手だったからです。
飛ばすこともできるのですが、Progateからrailsチュートリアルにきた人にとってはかなり良いツールだと思います!
エンジニアとして仕事をするということはコードを打つだけではなく、当たり前に様々なソフトウェアを使いこなす必要があります。(railsチュートリアルだけでも、**heroku**や**AWSのS3**など自分は結構苦労しました笑)
つまり、ソフトをダウンロード して使いこなすという意味でこれは大事です。
なので、ここではあえてどうすれば良いかは書きません(書かんのかーい)
正直、そこまで難しくない事を考えると、これができない方はパソコンを使う仕事に向いていないかもしれません。
なので、試行錯誤しながら頑張って見ましょう!!
“`ruby
@count = 1
def prime(n)
num = 2
count = 1
catch(:break_loop) do
while n > num do
if (n % num) == 0
# puts “#{n} は素数ではありません。”
throw :break_loop
end
num += 1
end
puts “#{n} は… #{@count}番目の素数です”
@count += 1
end
end
def loop1
2.step do |i|
prime(i)
# break if i == 100
end
end
def prime2(n, t)
num = 2
count = 1
catch(:break_loop) do
while n > num do
if (n % num) == 0
# puts “#
###0.初めに
今回も参考urlの内容を自分なりに改修してみた。
ハッシュ配列に恐竜を追加できたのはうれしい。
###1.ハッシュとは
key(数値でも文字列でも可)とvalueの組み合わせを登録できる連想配列。
“`
書式:ハッシュ配列名={key1 => value1,key2 => value2,…}
“`
###2.ハッシュのkey集合
“`
書式:ハッシュ配列名.keys
“`
###3.ハッシュのvalue集合
“`
書式:ハッシュ配列名.values
“`
###4.ハッシュの要素(key,value)の追加(1)
“`
書式:ハッシュ配列名[新しいkey]=新しいvalue
“`
###5.ハッシュの要素(key,value)の追加(2)
“`
書式:ハッシュ配列名.store(新しいkey,新しいvalue)
“`
###6.ハッシュのkeyの存在確認(存在:true,存在しない:false)
“`
書式:ハッシュ配列名.has_key?(key名)
“`
###7.ハッシュを使ったコード例
“`ruby:has
##はじめに
Railsチュートリアル11章の内容を、少しでも理解の助けとなればと思い、割としっかり目に整理しました!
__備忘録です。__
##前提
Railsチュートリアル1〜10章までの内容が完了していること。
##内容
Railsチュートリアル11章の__アカウント有効化機能の実装手順__を前中後半の3回に分けて整理していきます。
前編である今回は、アカウント有効化機能を実装するのに必要となるリソースや、データモデルを作成していきます!
中編→[__アカウント有効化メール送信機能の実装__](https://qiita.com/kurawo___D/items/051ce6f6bb0837e3481a)
後編→__アカウント有効化機能の実装__
##1.AccountACctivationsリソースを作成する
●セッション機能を使って、アカウントの有効化リソースを作成していく。
➡︎アカウント有効化リソースを作成するにあたり、Userモデルに必要なデータを追加していくことが必要となる。
➡︎注意しなければならない点が1つあっ
今回も、引き続き**ユーザー管理機能の実装**を行なっていきたいと思います!
1~7の手順で進めていきます
(2)では**3.viewファイルの追加**を行います
*(1)はこちらhttps://qiita.com/yni_se/items/482b992c748e134b3b03
#目次
1. deviseのインストール
2. Userモデルの作成
3. deviseのviewファイルの追加 **←いまココ!**
4. サインアップ機能の追加 **←いまココ!**
5. ユーザー情報編集機能の追加
6. ログアウト機能の追加
7. フラッシュメッセージの表示機能の実装
#3.deviseのviewファイルの追加
まず初めに、deviseのviewファイルを追加するためのディレクトリと作成しましょう!
作成するディレクトリは**2つ**です
・`devise`
・`users`
さらに、`devise`ディレクトリには、以下の**3つ**のディレクトリを作成しましょう!
・`registrations`
・`sessions`
・`shared`
ディレクトリが作成できたら、vie
countメソッドを使ってカラム値の合計を求めるのに苦労したのでメモ
ruby 2.6.3
rails 5.1.6
##特定の文字数や要素をカウントしたい場合
主の場合、Userモデル(親)、Wordモデル(子)という状況でUserモデルのViewでWordモデルのcompleteカラムのtrueという値がいくつあるのかを表示したいか模索していました。
##結論
特定の文字数や要素をカウントしたい場合はcountメソッドを使うとよい。
lengthやsizeといったメソッドもあるが、そちらはまた別の機会に。
##モデルの状況
**User.rb**
| id | name | email |
|:—————–|——————:|:——————:|
| 1 | saber | ~~ |
| 2 | lancer | ~~ |
| 3
## Scopeとは
関連オブジェクトやモデルへのメソッド呼び出してとして参照される、よく使用されるクエリを指定できる。どのスコープメソッドも、ActiveRecord::Relationオブジェクトを返す。このオブジェクトに対して、別のスコープを含む他のメソッドを呼び出しを行うこともできる。
## メリット
スコープを使うことで、繰り返し何度も呼び出すクエリをスコープにまとめることができ、汎用性とコードがすっきりする。
## 基本的な使い方
– 使用したいControllerに対応するModelに記入する
– `scope :シンボル名, -> { クエリを指定 }`(ラムダじゃなくても書けますdo~end)
## 補足
###ActiveRecord::Relationオブジェクトとは
クエリを生成するための条件を持っておいて、必要に応じて適切なSQLクエリを生成・発行してくれる
その結果からオブジェクトを作って返したり、保持してくれている
例:User.all, User.where(name: ‘hoge’) などで帰ってくるものがActiveRecord::Relati
## はじめに
食べログのコピーサイトを開発中にSNS認証で結構躓いたので備忘録として書いています。:muscle:
【新規登録】 omniauth-facebookでアカウント情報を取得後、ニックネームを入力して登録
【ログイン】 Facebookボタンを押すだけでログイン
という感じをローカル環境で実装をしていきます :paperclip:
基本はこの[github](https://github.com/simi/omniauth-facebook)を見るのが1番です!
## 動作環境
* Ruby 2.5.7
* Rails 5.2.4.2
* Vagrantによる仮想環境
## ログイン機能
#### deviseをインストール
Gemfileの最後に、以下のように2行を追加して保存します。
“`ruby:Gemfile
gem ‘devise’
“`
追加したdeviseを、アプリケーションに読み込ませます。
“`
$ bundle install
“`
次に、deviseの初期設定を行います。
“`
$ rails g devise:install
`
Ruby
Rails
Facebook
devise
omniauth-facebook
#プラスメッセージはSMSを便利にしたサービス
業務上、SMS認証を実装していて、SMSの利便性に気づいたので色々調べてみたところ、SMSをより便利にしたサービスがあるのを発見しました
**+メッセージ(プラスメッセージ)**
3キャリア合同で提供しているサービスで、携帯電話番号宛にメッセージを配信できて、画像や動画も送信できるサービス
最近企業が個人に配信することもできるようになったとのこと
ドコモのプラスメッセージURL(個人用)
https://www.nttdocomo.co.jp/service/plus_message/
#SMSとの違い
プラスメッセージとSMSの違いは
・プラスメッセージは1通2500文字近く送れる (SMSは1通70文字)
・プラスメッセージは画像や動画、位置情報まで送れる(SMSは文字のみ)
・プラスメッセージは受信者と双方向のやりとりができる(SMSは一方通行)
・プラスメッセージは送信者がサービスによって保証される・なりすましができない(SMSは送の保証なし)
以上のようにメリットがたくさんあるのがわかります。
送信できる文字数が増え
rubyでmysqlの接続、操作をする方法を記載します。
mysqlとgem “mysql2″はすでにインストール済みとして進めていきます。
データベースやテーブルの操作に関してはこちらも参考にしてみてください。
こちらも自分が書きました。
[基本的なmysqlの操作](https://qiita.com/hukuro310/items/49f22632ab36dc80fee4)
## 動作環境
– Windows10(ローカルOS)
– CentOS7(リモートOS)
– Oracle VM VirtualBox 6.1(仮想マシン)
– Ruby 2.7.1p83
– mysql
## データベースの作成
“`
CREATE DATABASE データベース名;
“`
ここでは`CREATE DATABASE training; `とします。
## テーブルの操作
### テーブルの作成
“`
CREATE TABLE テーブル名 (
カラム名1 データ型 オプション,
カラム名2 データ型 オプション,
カラム名3 データ型 オプション,
);
“`
今回は
“`
###結論
【text_field】 は入力できる内容が1行のみになります。
【text_area】 は複数行の内容でも入力が可能です。
##あとがき
サイト作成の際に、【text_field】のサイズを変更しようとしたのですが
1行しか入力できないことを知らず、必死にcssを当てたりbootstrapのドキュメントを読んだりして、時間を使ってしまいました。
初学者の方の参考になれば幸いです。
# エラーの原因
Dockerを使用して立ち上げたRailsコンテナのプロセスを「Ctrl + c」で強制終了し、「rails s」で再びサーバーを立ち上げようとすると” a server is already running” というエラーが発生することがあります。
原因は、pids/server.pid というファイルが残っていることです。手動ではありますが、コマンドラインで以下を実行すれば解決します。
“`
rm tmp/pids/server.pid
“`
毎回のように丁寧にDockerコマンドを入力すれば問題は発生しませんが、「Ctrl + c」で楽にサーバーを終了させたいというのが人間だと思います。しかし、エラーに怯え、エラーが発生した際に毎回手動対応することは大変に面倒なので、削除を自動化するシェルスクリプトを書きます。
まずは、Railsアプリのあるディレクトリに「delete-server-pid.sh 」というファイルを作成します。以下のコマンドを実行しても良いです。
“`
touch delete-server-pid.sh
“`
作成した
# railsでグラフ表示を行うための手引き
## 近況
テックキャンプに通って早二ヶ月,コロナの影響で自宅学習になって三週間目となりました。最終課題はと言いますとインフラのメインに携わりながらフロント,サーバーサイドに取り組んできた感じです。最終課題における私のダメなところとしては,サーバーサイドの修羅場をくぐり抜けてきた他のメンバーよりもメソッドなりGEMなりの知識が少なく,サーバーサイドの貢献度が低いことです。ここはメンバーに手法を聞きつつ理解したり,個人アプリで反映させて覚えていこうと思います。逆に自分が行なった部分はもちろんある程度詳しくなったので,Qiitaの記事なり活用して残せたらと。**今回の内容は課題と全く関係ないけどね!!!**
## 本題
私はサーバーサイドの学習教材としてrailsを用い,個人アプリでもお世話になるのですが,ある時このような疑問にかられました。**『図示ってどうするんだろう』**
結論からいうと,JSのライブラリchart.js(オープンソース)を組み合わせるのが一番手軽みたい。ここでは実際に個人アプリに実装するレーダーチャートを元にデー