Railsでvuetifyを使えるようにする初期設定
## 前提条件
railsアプリケーションで、ブラウザ上にvueコンポーネントの表示が出来ている状態。
[こちら](https://qiita.com/cohki0305/items/582c0f5ed0750e60c951)の記事を参考に環境構築するといいかも
### まずはもろもろインストール
“`:terminal
$ yarn add vuetify
$ yarn add material-design-icons-iconfont
$ yarn add @mdi/font
“`
### ルートのテンプレート
“`app/views/root/index.html.slim
= javascript_pack_tag ‘main’
= stylesheet_pack_tag ‘main’
“`
### jsファイルにインポートさせる
“`app/javascript/packs/main.js
import Vuetify from ‘vuetify’
import ‘material-design-icons-iconfont/dist/material-de
**ローカル環境にrubyやmysqlがインストールしてあることが前提です。**
“`
$ mkdir sample-app
$ cd sample-app
$ bundle init
“`
“`:Gemfile
# frozen_string_literal: true
source “https://rubygems.org”
git_source(:github) {|repo_name| “https://github.com/#{repo_name}” }
gem “rails”, “~>6”
“`
“`
bundle install –path vendor/bundle
“`
“`
bundle exec rails new . -B -d mysql –skip-turbolinks
“`
– -Bはbundle installを行わないようにする
– -dはデータベースの指定(今回はmysql)
必要なgemをgemfileに追記
“`
$ bundle install
“`
## このエラーが発生した場合
![https___
覚えることが多いので覚えた内容の備忘録を書こうを思います。
# rails-ujs
基本rails5.1以降にかかれている記述ですがその意味は
Ajax の送受信の “送” の部分を JavaScript で実装せずにやってくれるライブラリです。
Rails 5.1 から導入された form_with を使ってフォームを構築し
form でデータを送った後のレスポンスだけを JavaScript で書けば良くなります。
“`js:application.js
//= require rails-ujs
“`
# FormData
formタグ内の要素のデータをオブジェクトにしたもの
inputに入力された情報が、javascriptのオブジェクトとしてキーバリュー形式で表される。
new FormData(フォーム要素)とすることでFormDataを作成できます。
“`js
$(function(){
$(‘#new_comment’).on(‘submit’, function(e){
e.preventDefault();
var fo
#概要
yarn、Webpacker、react-railsを使います。
#1.Yarnのインストール
nodeが入っている場合
“`ruby:
$brew install yarn –without-node
“`
nodeが入っていない場合
“`ruby:
$brew install yarn
“`
#2.Webpacker をインストール
Gemfileにwebpackerを追加します。
“`ruby:Gemfile
gem ‘webpacker’
“`
bundle(bundle install)を実行。
インストールが終わったら、以下を実行。
“`ruby:
$bundle exec rails webpacker:install
“`
#3.既存アプリへReactを導入する
“`ruby:
$bundle exec rails webpacker:install:react
“`
application.html.slimに以下追記
“`ruby:application.html.slim
= javascript_pack_
#あなたのブラウザにはこのようなエラーが出ますか?
**Sass::SyntaxError in ~~~#index**
おかしいな。お手本見て入れたし、現状のソースをお手本と比べても問題はなさそうだゾ。
#原因?
海外サイト勢「サーバー再起動してみそ」
再度 “`rails s“`
「えっ」
問題なく起動。
![syokuji_computer.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480700/5cd944c3-a4d3-78f6-7d86-433a2c6dcdf6.png)
#参考記事
“`@import ‘font-awes
今現在わからないことについて
ruby on railsの
バグ修正の問題で、
何が原因か判断できない。
その理由はMVCの流れを理解できていないから。
細かいルール(どのように記述するかなど)
改善策としては、
これから先の練習問題をときつつ
どんなバグが多いのか体感して行く。
それで自分の理解できていない部分を
細かく洗い出す&よく出るバグの修正を重点的に出来るようにする。
今やるべきことは
問題をといて、自分の苦手を知ること。
どんなバグが多いのか知ること。
わからないことは人に聞くこと。ぐぐること。以上!
今日学んだことは
ハッシュ、引数、バグ修正の考え方。
ハッシュについてわからないことが多かったので、すっきりした。
ハッシュとは箱であり、配列にきれいに並んで入っている。
一つ一つに番号がある。
ハッシュから取り出すには、
ハッシュ名[:キー名]
ハッシュに入れるには
ハッシュ名[:キー名]=バリュー名
である。
# 症状
Rails6で本番環境でrailsを立ち上げようとしたら以下のエラーに遭遇した。
“`shell
raceback (most recent call last):
53: from bin/rails:4:in `‘
52: from /usr/local/bundle/gems/activesupport-6.0.0/lib/active_support/dependencies.rb:325:in `require’
51: from /usr/local/bundle/gems/activesupport-6.0.0/lib/active_support/dependencies.rb:291:in `load_dependency’
50: from /usr/local/bundle/gems/activesupport-6.0.0/lib/active_support/dependencies.rb:325:in `block in require’
49: from /usr/local/bundle/gems/bootsnap-1
Rails
nameerror
Rails6
Zeitwerk
##何かわけのわからない挙動やエラーが見受けられた時に役に立つのがdebug メソッド
“`
class UsersController < ApplicationController
def show
@user = User.find(params[:id])
debugger
end
def new
end
end
```
**debugger**をshowアクションの中に入れることで、ターミナルにてbyebugプロンプトを確認することができます。
debugをやめたい時にはCtrl-Dを押すとプロンプトから抜け出すことができます。
***debugメソッドを使うにはbyebug gemをインストールしている必要があります!***
Rails
Gem
debug
debugger
Railsチュートリアル
# Railsのヘルパーメソッド備忘録
## 開発環境
– Ruby2.6.3
– Rails6.0.1
## ヘルパーメソッド
### simple_format
**役割**
– 改行等のデータをHTMLへ渡す
**使用例**
“`ruby
<%= simple_format(@board.body) %>
<%= @board.name %>
“`
`<%= simple_format(モデルから渡されたデータ) %>`
今回は[やさしい図解で学ぶ 中間テーブル 概念編](https://qiita.com/ramuneru/items/db43589551dd0c00fef9)のつづきとして、
実際に中間テーブルを作成するほか、モデルとマイグレーションについてRubyのフレームワークであるRailsを用いて学んでいきましょう。
## ⭐️テーブル作成に必要なファイル
DB設計が終わったら、
「DBのデータを取り扱うファイル = **モデル**」と
「テーブルの設計図となるファイル = **マイグレーション**」を作らなければいけません。
まず、テーブル作成時にとりあえず必要なファイルは
# NOTE
– curl では rails の public な URL に接続できる状態。
– rails の publiic directory に HTML file を設置して、headless chrome からアクセスしてPDF変換しようとしたとき。( http://localhost:3000/some.html )
– chrome では localhost が 127.0.0.1 に割り当てられておらず、localhost が使えない場合がありそうだが詳しくは未確認。 http://127.0.0.1:3000/ にアクセスさせると良いかも。
– 最初 node + puppeter を通して実行させていたが、 どうやら chrome 本体の処理で問題が起きていそうだった。
– http://127.0.0.1:3000/some.html に接続しても動かず `Error: net::ERR_CONNECTION_REFUSED` が起こることがあった
– docker container で hostname -i した結果のIPアドレスに対して chrome
## Selenium::WebDriver::Error::UnknownError: unknown error: cannot find Chrome binary
Chapter5-8の最後で、初めてrspecを実行すると、以下のエラーが表示された。
“`Selenium::WebDriver::Error::UnknownError: unknown error: cannot find Chrome binary“`
Chromeが入っていないと言われているので、以下のコマンドを実行する。
“`curl https://intoli.com/install-google-chrome.sh | bash“`
### 参考
– [AWS Cloud9でCapybara+Selenium+Chrome設定時のエラーとその対処法について[ Everyday Rails 6章 ]](https://kuracux.hatenablog.jp/entry/2018/12/30/182617)
– [「Selenium::WebDriver::Error::WebDri
# アプリケーションのタイムゾーンを日本時間に設定する。
### 現状は..協定世界時の現在時刻(UTC/UTC+0000)表示となっている。
### 日本時間..日本標準時の現在時刻(JST/UTC+0900)へ変更したい。
### どこを変えるのか?
`root/config/application.rb`ディレクトリの中に、`config.time_zone = ‘Tokyo’`を記述する。
“`root/config/application.rb
require_relative ‘boot’
require ‘rails/all’
# Require the gems listed in Gemfile, includi
railsのコントローラーで検索機能を実装していて、突然エラーが出るようになったので発生原因と解決策をメモします。
ビューやリレーション部分は省略します。
## 実装したこと
日付検索機能を実装し、さらにグループでも検索できるように機能を追加
“`sample_controller.rb
def add_query_by_search_params(base_query)
added_query = base_query
added_query = added_query.where(‘created_at >= ?’, Time.zone.parse(params[:from_day])) if params[:from_day].present?
added_query = added_query.where(‘created_at <= ?', (Time.zone.parse(params[:to_day]) + 1.day)) if params[:to_day].present?
#ここから追記
if params[:gro
##rails console –sandbox
“Any modifications you make will be rolled back on exit” (ここで行ったすべての変更は終了時にロールバックされます) というメッセージにわかりやすく示されているように、コンソールをサンドボックスで起動すると、そのセッションで行ったデータベースへの変更をコンソールの終了時にすべて “ロールバック” (取り消し) してくれます。(引用:第6章 rails tutorial)
https://railstutorial.jp/chapters/modeling_users?version=5.1#cha-modeling_users
Railsチュートリアルの冒頭で概念的な説明があまりなくQiitaの情報も断片的で
チュートリアルの理解に苦しんだため、自分なりに整理した資料です。
独学だとよくわからないコマンドを連打するよりざっくりまずは全体感を理解した方が頭の中にすんなり入るはずと思うのは私の気のせいですかね…
〜処理の流れ〜
Browser -> Route(config/routes.rb) <-> Controller <-> Model <-> Database
Browser <- View <-> Controller
〜MVCとは〜
model(s): データベースの操作
view(s): UI処理
controller(s): models, views の連携、
viewsのディレクトリ名と結びつき、
defで定義するアクションは
viewsディレクトリ以下のファイル名と紐付き
rails 主要コマンド一覧: https://railsguides.jp/command_line.html
※コマンドが短縮されることがある generate が g
〜Gem, Gemを管理す
Ruby
Rails
Gem
RubyOnRailsTutorial
# はじめに
「Rails チュートリアル 2.2.1 ユーザーページを探索する」でハマったので情報共有します。
https://railstutorial.jp/chapters/toy_app?version=5.1#sec-a_user_tour
# 状況
`rails new toy_app` して,scaffold でユーザーリソースを作っただけなのに,ユーザーを削除しようと[Destory]リンクをクリックしてもユーザーが削除されないことがあります。
チュートリアルには,次のように書いてあります。
> 図 2.10の [Destroy] リンクをクリックするとユーザーが削除され、indexページのユーザーは1人だけになります (もしこのとおりにならない場合は、ブラウザのJavaScriptが有効になっているかどうかを確認してください。Railsでは、ユーザーを削除するリクエストを発行するときにJavaScriptを使っています)。
GoogleChrome では削除できました。
Firefox でも削除できました。
削除しようとすると「Are you sure?」って