- 1. Rails Tutorial 拡張機能のメッセージ機能を作ってみた(その2):表示する画面を作成
- 2. Rails 中身がない時にエラーが起こらない理由
- 3. Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)の解決まで。
- 4. Railsにて検索機能を追加する。
- 5. 【rails 初心者向け】複数Deviseモデルのログイン後の遷移先指定
- 6. 安全な数字(ruby編)
- 7. Railsでちょっとしたアイコンを使いたい
- 8. HTMLからHamlに変更する方法
- 9. 学習のアウトプット
- 10. Ralisのポートフォリオでcollection_check_boxesメソッドを使ったので復習
- 11. Rails 6でjQueryとBootstrapを使えるようにする(Rails 6)
- 12. jQueryでタブをマウスオーバー した際に表示画面を切り替える
- 13. HerokuをリセットしようとしたらActiveRecord::StatementInvalid: Mysql2::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near が出た場合の対処法
- 14. RailsのAPIモードをCookie(session)認証に対応させる
- 15. テンプレート: Docker コンテナで Ruby / Rails の開発環境を構築する (Mac版)
- 16. rails6 form_with(ヘルパー)のラジオボタンにCSSを装飾する方法
- 17. テンプレート: Docker コンテナで Ruby / Rails の開発環境を構築する(Ubuntu版)
- 18. プログラミングにおけるスニペットとは
- 19. Railsで非同期通信で実装する投稿機能
- 20. whereを用いたparamsの例
Rails Tutorial 拡張機能のメッセージ機能を作ってみた(その2):表示する画面を作成
Rails Tutorialの第14章にある、メッセージ機能を作る件の続きです。
前回まででモデルができました。表示する画面を作ります。
###DMを表示するViewの仕様を設計
DMを表示する方法を作ります。
tutorialの13.2 「マイクロポストを表示する」を読みます。MicropostのようにUserの画面に合わせて表示するのではなく、独立したページで表示することにします。Twitterと同様です。
モックアップを作ります。送信者が複数いるので、送信者が表示されているモックアップとして、図 14.5を参考にします。
———————————-
DM(3)
画像1 Thomas Hobbes Lorem ipsum
sent 1 day ago.
画像2 Sasha Smith Also poor,nasty,
sent 2 days ago.
画像3 John Calvin Excepteur sint
sent 3 days ag
Rails <%= 式 %> 中身がない時にエラーが起こらない理由
##この記事について
初心者が初心者に対して記述した初心者のRails記事##ずっと何となく疑問に思っていたこと。
controllerでインスタンス変数に何かしらの値を入れたつもりだったが実は中身が空(nil)やって、その変数をviewに渡しても何のエラーも起こらないことが謎やった。
##なぜエラーが起こらないのか?
理由は**`<%= 式 %>`が出力されるときは、式に対して`to_sメソッド`が呼び出されているから**。つまり、結果の出力はいつも自動的に`<%= 式.to_s %>`となっている。このメソッドが使える理由はRubyのオブジェクトは全て`to_sメソッド`を持ち合わせているからやねんな。
中身が入っていないインスタンスに対して`to_sメソッド`を呼びだす(`nil.to_s`)と、**空文字を出力するようになっている**。やからエラーが出さず、そしてそのまま何も表示されないんやな。
“`ruby
#controller
@name = nil#view
<%= @name.to_s %>さん
#出力
#=> さん`
Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)の解決まで。
#原因:
helokuのMysqlとデプロイ使用しているデータベースが紐付けられていなかったため。#確認したこと
“`
heroku info
“`
実行後、データベースの環境変数を確認“`
CLEARDB_DATABASE_URL: mysql://xxxxxxxxxxxx
CLEARDB_DATABASE_GREEN: mysql://xxxxxxxxxxxx
LANG: en_US.UTF-8
RACK_ENV: production
RAILS_ENV: production
RAILS_LOG_TO_STDOUT: enabled
RAILS_SERVE_STATIC_FILES: enabled
SECRET_KEY_BASE:
“`あるはずのDATABASE_URL:がないし、mysql2でデータベース作ったはずなのに反映されてない・・・。
#結論:
これは、ターミナルで
“`
heroku config:set DAT
Railsにて検索機能を追加する。
#概要
アプリケーション内でデータを検索できる機能があると、ユーザーがデータを探す際便利である。検索機能はSNS等でもよくある機能なので、実際に検索機能を実装してみる。
userというテーブルがあるとした場合、userを検索する機能を実装する。#1.ルーティングの設定
userを扱うUserModel、UsersControllerは作成されていることを前提とします。“`ruby:/config/routes.rb
# 省略
resources :users do
get “search”, on: :collection
end
“`searchアクションはリソースの集合を表すためon: :collectionを追加します。
#2.モデルにクラスメソッドsearchを追加
“`ruby:/app/model/user.rb
class User < ApplicationRecord class << self def search(query) rel = order("id") if query.prese
【rails 初心者向け】複数Deviseモデルのログイン後の遷移先指定
#管理者(admin)、顧客側(customer/user等)などを作成した際に、それぞれのログイン後のリダイレクト先を指定したい
###前提
・devise使用モデルとしてadminモデルとcustomerモデルがある(モデル名は置き換えて考えてください)
###実装“`ruby:application_controller.erb
class ApplicationController < ActionController::Base def after_sign_in_path_for(resource) case resource when Admin admin_top_path #pathは設定したい遷移先へのpathを指定してください when Customer root_path #ここもpathはご自由に変更してください end end end ``` 記述してみると簡単で、すぐ覚えられそうですね。 記述内容について、少し解説してみます! ・```
安全な数字(ruby編)
#[問題]安全な数字(ruby編)
#問題
4 桁のパスワードを考える上で法則性のある数字を避けようと考えています。
4 桁の数字で構成されたパスワードの文字列 s が入力されるので同じ数字が 2 つ以上存在すれば「NG」、そうでない場合は「OK」と出力してください。
#入力される値
入力は以下のフォーマットで与えられます。s
・1 行目に 4 桁の数字で構成されたパスワードの文字列 s が与えられます。
・入力は合計で 1 行となり、入力値最終行の末尾に改行が 1 つ入ります。
#期待する出力
4 桁の数字で構成されたパスワードの文字列 s が入力されるので同じ数字が 2 つ以上存在すれば「NG」、そうでない場合は「OK」と出力してください。
#入力例1
2020
#出力例1
NG
#入力例2
1234
#出力例2
OK
#私の答え
“`java:
a = gets.chomp.chars
if (a.count – a.uniq.count) > 0
puts “NG”
else
puts “OK”
end
“`
###1行目のcharsメソッドで例1で例
Railsでちょっとしたアイコンを使いたい
#はじめに
ちょっとお洒落にデザインしたかったので、アイコンを使ってみた。
##Font Awesome
無料で使えるアイコンがたくさん揃っている。Railsでも使う事ができる。##使えるまでの準備
###1. Gemを記述
“`ruby:Gemfile
gem ‘font-awesome-rails’
“`
ファイルの一番下に追記する。###2. インストール
ターミナルで、“`bash
bundle install
“`###3. ビューファイルで使えるように読み込ませる
“`ruby:app/views/layouts/application.html.erb
“`
タグ`の中に記述する。
`##使い方
[公式サイト](https://fontawesome.com/v4.7.0/icons/)から使いたいアイコンを選び、“`ruby
HTMLからHamlに変更する方法
# Hamlに変更
Gemfileの1番したに
“`
gem “haml-rails”, “~> 2.0”
“`を書く。
terminalで`bundle install`をする
これでHamlを使うことができる。#全てのファイルをHamlに変更
terminalで“`
rails haml:erb2haml
“`
を行うと既存ファイル全てがhamlに変更することができる。
その際に`(y/n)`を聞かれるので全部`y`で答えて全て変更完了。
学習のアウトプット
覚えたことやったことをノートに今まで書いてましたがこれだけでは記憶に残らないのでQiitaでも書いていきます。
本当に簡単のことしか書きません。自分用に書いていきます。「railsでホームページを作成するには」
rails generate contoller home top
これを実行すると2つのファイルが作られる。ファイルみたいなやつ。
1つは top.html.erb
2つめ home_controller1つめのtop.html.erb の説明
・これはviewに作られる
ここに文字,htmlを入れると反映される追加するときはファイルをhomeに作る
○○ .html.erbみたいな感じ2つ目のhome_controllerの説明
・これはcontrollerに作られる
controllerに def top と書かれている
これが無いとアクセスができない。追加するときは def ○○○
ちなみにルーティングに get “home/top” => “home#top”と書かれていないとエラーが起きる
get URL => コントローラ名 #
Ralisのポートフォリオでcollection_check_boxesメソッドを使ったので復習
#はじめに
user.rb“`
has_many :habits, dependent: :destroy
“`
habit.rb“`
belongs_to :user
“`
userモデルがhabitモデルを複数持っている関係性
habitモデルは、taskというstring型のカラムと、completeというinteger型のカラムを持っている#やりたい事
チェックしたhabitモデルのみ、completeカラムに+1したい
これを1つのフォームで複数一気に出来るのがcollection_check_boxes
書き方はこんな感じ“`
<%= form_with(model: @user,url: complete_user_path, local: true) do |f|%><%= @user.name %>
習慣
<%= f.collection_check_boxes :habit_ids, @user.habits,:id,Rails 6でjQueryとBootstrapを使えるようにする(Rails 6)
Ruby on Railsでアプリケーションを作る際に,jQueryとBootstrapを使えるようにしたかったので手順をメモ。(Webpackerを使用。)
__1.yarnでjQuery、Bootstrap、popper.js(Bootstrapが使う)を導入。__
アプリケーションのディレクトリ配下で以下を実行。
“`
yarn add jquery bootstrap popper.js
“`__2.webpackの設定__
app/config/webpackのenvironment.jsの記述を追加する。
(これによりimportやrequireなしで$やBootstrapのJavascriptが使えるようにする。)“`javascript:environment.js
const { environment } = require(‘@rails/webpacker’);//ここから
const webpack = require(‘webpack’);environment.plugins.prepend(
‘Provide’,
njQueryでタブをマウスオーバー した際に表示画面を切り替える
# はじめに
今回はjQueryを使って、tabをマウスオーバーした際にページリロードを行わずに表示を切り替える方法を記述していきます。# 完成イメージ
![mypageTabChange.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/683220/e9fe5872-fa3a-97cc-d0d8-8c432744708c.gif)# 環境
MacOS 10.15.7
ruby 2.6.5
Ruby on Rails 6.0.0
jquery 3.4.1# 前提条件
– jQueryが導入済みであること。# それでは作業していきます!
## ①show.html.erbとcssを作成する。
まずはhtmlから作成します。今回はshow.html.erbというファイルに記述します。
“`erb:show.html.erb
<%# tab部分 %>関連する記事
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関連のことを調べてみた