- 1. 【Rails チュートリアル】”NoMethodError (undefined method `activation_digest=’ for #
- 2. RailsアプリをAWSにデプロイするまでにすごく苦労したので教訓メモ
- 3. 【読書感想】『Railsの学び方、あるいは本の書き方、そして教え方』
- 4. railsでカスタムヘルパーの使い方
- 5. Dockerを用いてRuby on Railsの環境構築をする方法( Docker初学者向け )
- 6. ゲッターとセッターをの理解をごっちゃにしないために【なんでもかんでもアクセサを使わない!】
- 7. 【Rails】devise nameカラムを追加して名前でログインする方法
- 8. 【Rails】deviseの導入方法
- 9. rails test がデータベースの参照エラーで失敗する
- 10. 【Bootstrap】いきなりログアウトできなくなった〜なんでや?CSRF問題らしい〜
- 11. 画像のプレビュー機能
- 12. 手軽にチャットを作成できるサービスをリリースした!
- 13. active_hashを使って都道府県のセレクトバーを作成
- 14. Githubにpushするまで
- 15. Chart.jsで円グラフを書く
- 16. Railsのコントローラでparamをhashに変換する方法(随時更新)
- 17. rails 学習 ActiveModelを用いた検索機能の実装方法
- 18. Rails バリデーション書き方
- 19. 【読書感想】アプリケーションコンフィグの設定パターン 銀座Rails #27
- 20. Rails がオワコンwww
【Rails チュートリアル】”NoMethodError (undefined method `activation_digest=’ for #
# “NoMethodError (undefined method `activation_digest=’ for #
について
何故か本番環境だけで、このエラーがみられた
**user.rb**
“`
def activate
self.update_attribute(:activated, true)
self.update_attribute(:activated_at, Time.zone.now)
end
“`とself.をつけ忘れてた
何故、ローカルだと問題なかったのか、、、
RailsアプリをAWSにデプロイするまでにすごく苦労したので教訓メモ
# 何コレ
ポートフォリオを作成する上で以下の環境構築を行っていたが、個人的にとても苦労したので備忘録として残しておきたいと思い書いた。## 設定環境
AWS EC2(1年間無料で使えるインスタンス)
AWS RDS
Ruby 3.0.0
Rails 6.1.1
puma 5.1.1
mysql 5.7アプリはまだRails newしただけの状態
## 使った教材
こちらの記事を参考に環境構築を行った。わからない単語などは都度調べながら。
https://qiita.com/take18k_tech/items/5710ad9d00ea4c13ce36
記事自体はタイトルの通り、知識としては今は無くとも環境構築できるのではと思う(インフラ大事だからいずれはもっと学習するつもり)。## 何が苦労したのか
主に以下の点でとても苦労した。・記事とおりやっているが、capistranoの設定あたりから壮大につまずく
→これは記事が悪いわけでは無く(それ以外はすんなり設定できたので非常に感謝している!)、環境というのはどうしても個々で異なるので、あまり鵜呑みにせず、できたらラッ
【読書感想】『Railsの学び方、あるいは本の書き方、そして教え方』
こちらを読んだ感想。
# 詳細
> Railsの学び方の基本的な流れ
Rails始める人、やってる人は必見。
> わからないことをわかる技術
メタ認知的なこと。自分の視野外の知見は人に教えてもらう or 書籍の必要性。
> 良い名つけが分からない
命名がよくないことが多いので、「名前つけ大全」を読んで広めたい
> GraphQLをRailsで使う体系的な資料
読みたい。
> 本はDRYに書いてはいけない
繰り返し大事。
> 人間は全て別の処理系
仕事の上でも前向きになれる良い言葉。
# まとめ
いろいろな処理系を知っている人は、優しくて強い。
railsでカスタムヘルパーの使い方
>引用先
>[Railsチュートリアル](https://railstutorial.jp/)#カスタムヘルパーとは
Railsでは多くの組み込み関数が使えますが、使いたいメソッドがなかった時にオリジナルのメソッドを作成できます。
この新しく作ったメソッドのことをカスタムヘルパーといいます。#ファイルの場所
“`ruby:app/helpers/application_helper.rb
module ApplicationHelperend
“`ファイルの位置は app/helpers/application_helper.rb
最初はこのようなファイル構造になっています。#使い方
例えばこのように記述する。
“`ruby:app/helpers/application_helper.rb
module ApplicationHelperdef full_title(page_title = ”)
base_title = “Sample App”
if page_title.empty?
base_title
Dockerを用いてRuby on Railsの環境構築をする方法( Docker初学者向け )
Dockerを初めて勉強するとき、多くの方が「参考書」や「入門Dockerなどのサイト」で基礎的なところから学習すると思います。
しかし、Dockerとは何なのか、何のイメージも沸いていない状態で、様々な単語を羅列されても、さっぱりわからないという方も多いと思います。( 少なくとも私はそうでした。)
なので極論、基礎すっ飛ばしてまず実際にDockerで仮想環境を構築しながら学んでいこうという話です。
そして何となくでいいのでイメージを掴んでから、基礎を学べば良いと思います。
Dockerを初めて学習する方の中で、Ruby on Railsで開発したアプリケーションをポートフォリオとしている方も多いのではないでしょうか。
なので今回は、__Dockerを用いてRuby on Railsの環境構築をする方法__ をご紹介いたします。ですが、超基本的なことだけ先に説明させてください。
( とにかく早く環境構築した人は __[前提](#前提)__ まで飛んでください )## Dockerとは
![1_y6CvfE6WUgoIdT8Mp0Ev_g.png](https://qiita-i
ゲッターとセッターをの理解をごっちゃにしないために【なんでもかんでもアクセサを使わない!】
ゲッターとセッターの解説記事は何個かあるので、そこはお任せするとして、
あと、アクセサという便利なコードもありますが、使い分けについて書かれてる物がすくなかったので、初学者編の基礎として振り返ろうと思って書きました。まずはよくある車を設計する所です。
## アクセサを使える場合
“`ruby:車の設計
class Car
attr_accessor :model, :color, :option
def initialize(model, color, option)
@model = model
@color = color
@option = option
end
endcar = Car.new(“Benz”, “white”, “ホイール”)
#=> すべて変更可能
“`
これだったら、`attr_accessor` でまとめてしまっても良いのですが、
例えば **「もう車作ってるのに、車種と色変えられたら困るよ!!!(オプションだけだったらいいけど・・・)」** という場合の書き方は、## ゲッターとセッターを使う場
【Rails】devise nameカラムを追加して名前でログインする方法
## はじめに
deviseを使い始めたときにハマった部分があったので,記事に残しておきます。※この記事は,deviseが導入済みであることが前提です。
導入方法については,前回の記事[【Rails】deviseの導入方法] (url)にまとめていますので参考にしてみてください。【**環境**】
– macOS Catalina 10.15.7
– Vagrant 2.2.4 (CentOS 7.1)
– Ruby 2.5.7
– Rails 5.2.4.4
– devise 4.7.3## 手順
全体の流れは以下のようになっています。**1. nameカラムを追加する
2. devise.rbの設定を変更する
3. コントローラーを編集する
4. Viewを編集する**
___### 1. nameカラムを追加する
マイグレーションファイルを新しく作成します。Userモデルにnameカラムを追加する場合は下記のようにコマンドを実行します。
“`:ターミナル
$ rails g migration add_name_to_users name:str
【Rails】deviseの導入方法
## はじめに
Qiita初投稿です。初学者が記載していますので,間違いがあるかもしれません。ご指摘やアドバイスなどございましたら,ご教授いただけると幸いです。よろしくお願いします。【**環境**】
– macOS Catalina 10.15.7
– Vagrant 2.2.4 (CentOS 7.1)
– Ruby 2.5.7
– Rails 5.2.4.4
– devise 4.7.3## deviseとは
deviseは,webアプリケーションへの認証機能の実装を簡単に行うことができるgemです。認証機能とは,簡単に述べるとログインやログアウト機能のことです。ユーザー情報を扱うため,セキュリティ面への不安や,工数が多くなるなど,1から作成することは大変です。deviseを使うことによって,上述の問題を解消し,認証機能の実装を簡単にしてくれます。## deviseの導入
### 1. gemのインストール
Gemfileに以下を記述します。“`:Gemfile
gem ‘devise’
“`保存したあと,以下のコマンドを入力して,アプリケーションに読み
rails test がデータベースの参照エラーで失敗する
# 経緯
Docker の中で Rails と MySQL を立て、 rails test でテストを実行しようとしたところ、エラーとなりました。
“`yml:docker-compose.yml
services:
mysql_test:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: aaa
MYSQL_USER: user
MYSQL_PASSWORD: password
TZ: ‘Asia/Tokyo’
command: mysqld –character-set-server=utf8mb4 –collation-server=utf8mb4_unicode_ci
“`“`shell
$ rails test test/integration/aaa_test.rb
Error:
AaaTest#aaa:
ActiveRecord::ConnectionNotEstablish
【Bootstrap】いきなりログアウトできなくなった〜なんでや?CSRF問題らしい〜
### 解決したいこと
Bootstrapを導入してからログアウトができなくなってしまった。### 発生している問題・エラー
ログイン後、ヘッダー部分にあるログアウトボタンを押すとエラーメッセージが出て、一生ログアウトできない。
![a746095752c272c27d28d5b332bbf41f.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/887559/8c4f8248-c4ee-02db-b5e4-69f0d14a7892.png)
### 該当するソースコード
“`application.html.erb
画像のプレビュー機能
## はじめに
画像投稿時に、画像ファイルの名前だけが表示されるだけで、きちんと出来ている分かりづらいと感じたので、プレビュー機能を実装しました。
**プレビュー機能実装前**
##1.準備
**1. プレビュー機能を実装させるためのjsファイルを作成する。app/javascript/packsにpreview.jsを作成**
→ **app / javascript / packs / preview.js****2.preview.jsを読み込めるようapplication.jsを編集する。**
“`ruby:app/javascript/packs/application.js
require(“@rails/ujs”).start()
require(“@rails/activestorage”)
手軽にチャットを作成できるサービスをリリースした!
##初めに
今回はweb上で動くチャットアプリ 「スコーチチャット」を作りました。
アカウント登録不要
ダウンロード不要
で使い捨てで使われることを想定してます。![chat-top.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480294/a3e7df9c-e0d8-251b-cdc0-44832a4cea7a.png)
パスワードも設定可能ですURL
https://scorch-chat.herokuapp.com/##開発環境
rails6
ruby2.7
heroku
postgresql
ActionCable
slimいつもと同じです。
##開発期間
5日くらいです。
webアプリは当たる確率が6%程で質より量を打ったほうがいいといわれたのでなるべく早く作りました。##チャット画面
![chat-smart.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480294/0f689b9
active_hashを使って都道府県のセレクトバーを作成
今回はよく見かける都道府県のセレクトバーを作成していきたいと思います:grin:
##① active_hash導入
“`
gem ‘active_hash’
“`
“`
$ bundle install
“`##② 関連するモデルにprefecture_id :integerを追加する
私の場合はpetモデルに追加します。“`rudy:db:migrate
prefecture_id :integer
“`##③ prefectureモデルを手動で作る
modelのなかにprefecture.rbファイルを直接作成し、中身を記述。“`rudy:prefecture.rb
class Prefecture < ActiveHash::Base self.data = [ {id: 1, name: '北海道'}, {id: 2, name: '青森県'}, {id: 3, name: '岩手県'}, {id: 4, name: '宮城県'}, {id: 5, name: '秋田県'}, {id: 6, name: '山形
Githubにpushするまで
GitHubへPushするまでにかなり手こずったので
また同じようなことにならない為に記録しときたいと思います。#環境
– macOS Big Sur (11.1)
– エディター VSCode
– GitHubアカウントは登録済み
– 管理しているプロジェクトはrailsで実装済み#1.リポジトリの作成
– [GitHub](https://github.com/)でRepositoriesの`New`をクリック
– `Repository name`で好きな名前(作っているアプリの名前)を入力
– `Public(公開)` `Private(非公開)`はお好きに決めてください
– `create Repository`でリポジトリの作成完了#2.VSCodeでinitからcommitまで
– フォルダを開くをクリックしてpushしたいプロジェクトを開き、下のコードを入力“`:ターミナル
$ git init
$ git add -A
$ git commit -m “コメント”“`
`add -A`で現在のディレクトリ以下の全ファイルを選択
`comm
Chart.jsで円グラフを書く
chart.jsでデータベースの値から簡単な円グラフを作成
スポーツの大会でよくある勝敗確率のグラフ(最高100%という設定)
![スクリーンショット 2021-01-20 16.27.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/551832/1a9e46d3-40dd-17e4-c82a-9c716613656d.png)####データベース
forecastsテーブル
numはwin_schoolの勝利確率
win_schoolは勝利予想されているチーム
lose_schoolは負け予想されているチーム|id|num|user_id|win_school|lose_school|
|:–|:–:|–:|–:|–:
|1|60|1|A学園|B学園|####コントローラー
idが1のデータを取ってこれる設定“`.rb
def show
@forecast = Forecast.find(params[:id])
end
“`####htmlファイル
Railsのコントローラでparamをhashに変換する方法(随時更新)
params[:some_key]がStringだったり、ActionController::Parametersだったりしてややこしいので。
“`rb
class MyController < ApplicatinoController def my_action # hash_of(params[:some_key]) # 呼び出し # head: :no_content end private def hash_of(param) case param when Hash # 本当にhashがあり得るのかは調べてない。 param when String JSON.parse(param) # JSON stringじゃなかったらエラーを吐く when ApplicationController::Parameters param.to_unsafe_h end end end ``` ## 参考 -
rails 学習 ActiveModelを用いた検索機能の実装方法
##form_withを使って検索機能を追加する
“`ruby:admin/article/index.html.slim
li
= form_with model: @search_articles_form, scope: :q, url: admin_articles_path, method: :get, html: { class: ‘form-inline’ } do |f|
=> f.select :category_id, Category.pluck(:name, :id) , { include_blank: true }, class: ‘form-control’
.input-group
= f.search_field :title, placeholder: “タイトル”, class: ‘form-control’
span.input-group-btn
= f.submit ‘検索’, class: %w[btn btn-default btn-flat]
“`
今回検索用にf
Rails バリデーション書き方
アウトプットでRailsでのバリデーションの書き方を載せます。
データが正しいかどうかを検証するのがバリデーションになります。
まずモデルにて
“`ruby:user.rb
class User < ApplicationRecord validates :nickname, presence: true :nickname #カラム名 presence: true #空でない事 ``` 次にコントローラ ```ruby:user_controller.rb class UsersController < ApplicationController def new @user = User.new end def create @user = User.new(user_params) if @user.valid? #ここ!!ここ!!! @user.save redirect_to root_path
【読書感想】アプリケーションコンフィグの設定パターン 銀座Rails #27
こちらを読んだ感想。
# 詳細
> “12 Factor App”
>
> コンテナ化されたモダンなインフラ環境でまさに参考にできることが多いこれは普段から実感することが本当に多い。12 Factorから外れてるRailsアプリは、コンテナ化がしんどいとも言える。
> 環境変数
便利だけど、数増えてくると辛い。サービスを分ける指標にもできそう。
> デフォルト値問題
いい感じに開発環境のデフォルトを設定できていると、皆幸せ。
# まとめ
“設定変更方法による違い”を見るとどれを選択すべきかわかりやすい。
頻繁に変わったり、環境ごとに変わるものは構成管理からは外すの良いと思う。
Rails がオワコンwww
# はじめに
※ この文章はベータ版です。Yahoo!知恵袋にあった間違いだらけのベストアンサーがあまりにも…だった
ので書いています。
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10236599945#このベストアンサーの問題点
著者が、よく知りもしない情報について、きちんと調べもせず、以前、聞き齧ったorどこかで
読んだような気がする、うろ覚えの情報をベースに、回答しているようにしか見えない。自分がうろ覚えの情報で回答することで、ネット上に誤情報をばら撒く可能性を考えていない
時点で、自分はこの著者が技術屋or技術屋を目指す人間なら、アウトと評価します。(この著者、「はず」「と思う」を多用することで、うろ覚えの情報で回答していますよアピールを
している気が、、、うろ覚えの情報で回答していることに、何ら問題を感じていないようにみえます、
自分のうろ覚えの情報が間違っていた時のための予防線を張っているようにも。。。「はず」「と思う」が多用されていても、質問者や読者が正しい情報と誤認識する