- 1. 【rails】active_storageに簡単にバリデーションを追加
- 2. 既存のJavaScript + importmap で動かす備忘録
- 3. 超簡単 Rails タイトルを動的にする
- 4. Rails7でfont-awesomeを表示させる方法
- 5. RailsのTransactionについてのメモ
- 6. Railsプレイヤーと一緒に仕事をするWebデザイナー向けのノート
- 7. 【rails】【rspec】RspecでRails のActionMailer の本文をテストする
- 8. 【Rails】【Ruby】decoratorでHTMLのタグを作る【初心者】
- 9. HTMLの基礎知識(YoutudeのURL 投稿と反映)
- 10. 基本的なRailsの文法
- 11. HTMLの基礎知識(星評価の平均)
- 12. 【Ruby on Rails】ポケモンゲットだぜ!!
- 13. ruby on rails 5
- 14. 【Ruby on Rails】Slimでコメントアウトする方法
- 15. Ruby on rails メモ①
- 16. bundle install 時の idn-ruby エラー
- 17. ログインの有無でアクセス制限をする方法【Rails】
- 18. 【Rails】APIモードかつクロスオリジン間でCookieやSessionを使う方法【SPA】
- 19. Rails6でrails generate scaffoldすると`Unknown alias: default (Psych::BadAlias)`とエラーが出る
- 20. orderメソッドについてまとめ
【rails】active_storageに簡単にバリデーションを追加
画像投稿を簡単に導入できるactive_storageというGemがあります。画像投稿は簡単に実装できるようになりますが、PDFなども画像として投稿可能なため、思わぬエラーの原因になり得ます。そこで、バリデーション設定するにアウトプットします。
![スクリーンショット 2022-07-24 7.41.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2707093/525ce0cf-f621-8eeb-f08e-e5622c8fc91c.png)
# 結論
Active Storage ValidationsというGemを導入すると、既存のvalidateと同じような記述でバリデーションを追加できます。もう1つの方法は自身でバリデーションのメソッドを定義する方法ですが、今回こちらは紹介しません。
導入方法
“`ruby:gemfile
# Rails 5.2 and Rails 6バージョンのみ利用可能
gem ‘active_storage_validations’
#記述後bundle ins
既存のJavaScript + importmap で動かす備忘録
既存のJavaScript `app/assets/javascripts/` と
Importmapに対応したJavascript `app/javascript/` の共存、その備忘録になります。ここでは、`js_compressor` にTerserを利用しています。
## Gemfile
“`ruby:Gemfile
…# The original asset pipeline for Rails [https://github.com/rails/sprockets-rails]
gem “sprockets-rails”# Use JavaScript with ESM import maps [https://github.com/rails/importmap-rails]
gem “importmap-rails”# Terser minifies JavaScript files by wrapping TerserJS to be accessible in Ruby [https://rubygems.org/gems/terser]
g
超簡単 Rails タイトルを動的にする
# 使用環境
– Rails 6~
– Ruby 3.1.0
– M1 Mac
# Rails タイトルを動的にする方法
自分も初学者ですが、誰でもできるよう、分かりやすく書いていきます。# app/helper/appliction_helper.rb
以下のコードをコピー&ペーストして下さい。
コードに関しては、、、調べて下さい?
僕はおまじないだと言い聞かせてます?“`
module ApplicationHelper
BASE_TITLE = “KAKEIBO”.freeze #ここで変えたいタイトルにしてる
↑ここを変えたいタイトルにしてあげるdef full_title(page_title)
page_title.blank? ? BASE_TITLE : “#{page_title} – #{BASE_TITLE}”
end
end
“`# app/views/layouts/appliction.html.erb
タイトルタグを以下のコードに変えてください。
“`
#変更前
te
Rails7でfont-awesomeを表示させる方法
### はじめに
今回の解決策は憶測の結果なので、こういった事例もあったのか程度に見ていただければと思います。
### 解決したい問題
ポートフォリオ用のアプリケーションをRailsで作ってる際起きました。
詳しくはこちらをご覧ください
https://qiita.com/woodman0224/questions/96013b924619b77e1cd8qiita内でも色々な記事を見て解決策を探していたのですが
中々見つからず途方に暮れる事早一日。
いっそのことエラー箇所をコメントアウトしようと思い、
してみたところなんと!表示されました!!!泣### やってみたこと
application.scssが現状このような状態です!
“`scss
//@import “font-awesome-sprockets”;
@import “font-awesome”;
“`
となるとおかしいなと思ったので確かめてみたら
“`scss
// @import “bootstrap-sprockets”;
@import “bootstrap”;
“`
RailsのTransactionについてのメモ
## ActiveRecord::Base.transaction
複数のSQLが発行されるときに、すべてのアクションが終わったときにDBを更新する。## 具体的には
以下のようなブロック内に処理を書いていく。“`ruby
ActiveRecord::Base.transaction do
# 処理
end
“`
例えばインスタンスメソッド内で
“`ruby
ActiveRecord::Base.transaction do
users.each do |user|
user.update!
end
self.save!
end
“`
これですべての処理の保存と更新を一括で行うことができる。
Railsプレイヤーと一緒に仕事をするWebデザイナー向けのノート
# 目的
Railsでサーバーサイド設計をしている僕が、Webデザイナーの方とチームを組んで1つのWebアプリを作ることになりました。
相手の方はWebデザイナーとして十分な実力を持っていますが、サーバーサイドエンジニアと一緒に仕事をするのは初めてということでしたので、Railで作成したWebアプリがどのようになっているのかをまとめたいと思います。# 準備
実際に作業に入る前に、まずは一緒に仕事をする準備をしましょう。## Rails環境を構築する
RailsでWebアプリを動かす(ローカルサーバ上でアプリを走らせる)には、Rails環境が必要になります。
下記記事を参考に、`rails s`でローカルサーバを立ち上げられるようにしておいてください。
[Ruby on Railsの環境構築をしてみよう!(Windows)](https://prog-8.com/docs/rails-env-win)## gitでプロジェクトを共有
まずはgitでプロジェクトを共有します。
こちらの記事を参考に、自分のレポジトリにプロジェクトフォルダを作成してください。
[GitHub で他
【rails】【rspec】RspecでRails のActionMailer の本文をテストする
## はじめに
未経験からエンジニアに転職して、4ヶ月ほど経つエンジニアです。
RspecでRails のActionMailer のメール本文に期待通りの文章が表示されているかどうか
をテストする方法についてです。![アイコンバー.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/916052/61a0d3ee-6ff7-f4ca-bb00-622c3c99cfa5.jpeg)
## 結論
~~~ruby
expect(ActionMailer::Base.deliveries.last.html_part.body.to_s).to match(“メール本文の内容を書きます”)
~~~
上記のように↓を使うとテストできます。
~~~ruby
expext(XXXX.html_part.body.to_s).to match(“”)
~~~## 具体例
~~~ruby
# models/send_mail.rb
def send_mail
# メールを送信する処理
mail.deli
【Rails】【Ruby】decoratorでHTMLのタグを作る【初心者】
## はじめに
未経験からエンジニアに転職して、4ヶ月ほど経つエンジニアです。
![アイコンバー.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/916052/61a0d3ee-6ff7-f4ca-bb00-622c3c99cfa5.jpeg)今回は decorator で HTMのタグを作る方法を手短に紹介します。
rails の gem ‘draper’ を使用しています。~~~ruby
def user_status_tag
h.tag.span class: “[text-weight-bold”] do
# 描画したい文字や変数、メソッドなど
end
end
~~~↓に使いたいHTMLのタグを続ければOKです。↑ではspanを使っています。
~~~ruby
h.tag.HTMLのタグ名
~~~↓のようにスタイルを当てることもできます。
~~~ruby
class: “[text-weight-bold”]
~~~## 最後に
今回は decorator
HTMLの基礎知識(YoutudeのURL 投稿と反映)
みなさん今日もプログラミングの学習お疲れ様です!!
今回はYoutudeの動画を投稿し、それを詳細ページに反映する機能を実装していきます!!:sunny:
Step1:モデルを作成 “`ruby:ターミナル
rails generate migration AddYoutubeUrlToTweets youtube_url:string
“`“`ruby:ターミナル
rails db:migrate
“`Step2:コントローラーの追加 “`ruby:tweets_controller.rb
private
def register_params
params.require(:register).permit(:youtube_url)
end
“`Step3:newにyoutude_urlのデータを追加 “`ruby:tweets_new/html.erb
<%= @tweet.label :youtube_url %>
<%= @tweet.t
基本的なRailsの文法
## はじめに
ドットインストールにてRailsを勉強しているのですが、知識を記憶に定着させるため、学んだこと、調べたこと、自分で考えたことなどを書いていきます。
何かご指摘があれば教えていただければ幸いです!## 環境
Ruby: 2.6.5p114
Rails: 5.1.7
教材内のバージョンに合わせました。## ログファイルの場所
“`ruby
log/development.log
“`## モデル作成
“`:zsh
rails g model Post title:string body:text
“`Modelは個々のデータ構造を定義するので、Postのように単数形になる。
上記を実行した後、いろいろなファイルが作成され、今作ったデータの構造をデータベースに反映させるには、下記を実行する。
“`:zsh
rails db:migrate
“`## データベースを使う
“`:zsh
rails dbconsole # rails dbと省略できる
.tables # 存在するテーブルを見る
“`## 初期データの流し込み
HTMLの基礎知識(星評価の平均)
今日もプログラミングしていますか?:sunny:
今回は星機能の平均の出し方を実装していきたいと思います!!
*注意
ここでは以下の詳細ページの実装が大前提となっております!!!“https://qiita.com/tomo089/items/246230912c32aa5c7864”
Step1:コントローラーの追加 “`:tweets_controller.rb
def show
@register = Register.find(params[:id])@reviews = @register.reviews
@review = Review.new
#変更箇所
@totals=@reviews.average(:eve)
#ここまでend
“`Step2:Viewの追加 “`:tweets_show.html.erb.
平均評価
ruby on rails 5
$ rails new tweet_app
railsで開発を始めるコマンド。
アプリケーション名と同名のフォルダが作成され、その中に開発で必要なフォルダやファイルが用意される。
app/アプリケーションのメインフォルダ
config/設定情報に関するフォルダ
db/データベースに関するフォルダ など……..$ rails server サーバーの起動
開発中のアプリケーションをブラウザに表示させるために行う。$ rails generate controller home top
topというページを作成するためのコマンド
このコマンドを実行すると、新しいWebページが自動で作られ、
「localhost:3000/home/top」というURLにアクセスできるようになります。
↓
なぜコマンドだけでページができるのか
→ページを表示するために必要なファイルが作られていた。
railsでは三つのファイルが必要である
①view…ページの見た目を作るためのHTMLファイル
app/views/|home/top.html.erb| rails generate
【Ruby on Rails】Slimでコメントアウトする方法
## Slimでコメントアウトする方法
“`
/
.card-body
h5 ゴリラ
“`
このように“/“を記述すると、“/“より下のコードについてはコメントアウトされ、画面で確認をすると非表示となる。
Ruby on rails メモ①
### はじめに
記事を書くのは今回が初めての投稿です。
私は今エンジニア転職を目指して独学中なのですが、
色々な文献を見ているとアウトプットとしてQiitaなどに投稿すると知識の定着が図れるとのことなので、
早速やってみます笑### 直面した問題
現時点でprogateとRaisチュートリアルで勉強してきましたがroutesファイルの表記が違うんです!
例えばusersアクションのルーティングの記述について
こちらがRailsチュートリアル↓
“`
Rails.application.routes.draw doresource :users
end
“`
そしてこちらがprogate↓
“`
Rails.application.routes.draw dopost “users/create” => “users#create”
get “signup” => “users#new”end
“`えーーー!progateと違うじゃん!!!ってなりました笑
というのもRESTfulなUsersリソースを作成するためにresourcesメ
bundle install 時の idn-ruby エラー
## エラー内容
環境構築時の`bundle install` で `idn-ruby`に関するエラーに遭遇。“`
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.current directory: /Users/ynamiki/Desktop/sora/vendor/bundle/ruby/2.6.0/gems/idn-ruby-0.1.0/ext
/Users/ynamiki/.rbenv/versions/2.6.6/bin/ruby -I /Users/ynamiki/.rbenv/versions/2.6.6/lib/ruby/site_ruby/2.6.0 -r ./siteconf20220722-10264-bfer1i.rb extconf.rb
checking for -lidn… no
ERROR: could not find idn library!Please install the GNU IDN library or alternati
ログインの有無でアクセス制限をする方法【Rails】
# 目的
SNSサイトにて、ログインの有無でアクセス制限したいときの処理をメモにまとめます。# サイト構成
作成したサイトの構成は下記です。“`ruby:routes.rb
# ログイン中はアクセス制限
get “/” => “users#login_form”
post “/login” =>”users#login”
get “/new” => “users#new”
post “/users/create” => “users#create”# ログアウト中はアクセス制限
get “/edit/:id” => “users#edit”
post “/users/update/:id” => “users#update”
post “/logout” => “users#logout”
“`# current_userの準備
ログイン中のユーザーを`@current_user`で定義します。
これは全てのコントローラで使用する変数なので、`application_controller`で定義し、`before_action`に設定します。“`ruby:ap
【Rails】APIモードかつクロスオリジン間でCookieやSessionを使う方法【SPA】
# 環境
– Ruby 3.1.2
– Rails 6.1.6
– Vite 2.9.9
– Vue 3.2.25
– Docker
– Google Chrome (バージョン:103.0.5060.53)# 前提
– RailsはAPIモードで使用
– フロントエンドとバックエンド間は異なるオリジンでの通信# やり方
APIモードで起動したRailsはそのままではCookieを使うことができません。
なので、まずCookieを使うことができるようにします。“`ruby:app/controllers/application_controller.rb
class ApplicationController < ActionController::API include ActionController::Cookies # 追加 ``` ```ruby:config/application.rb module App class Application < Rails::Application # ... config.middleware.
Rails6でrails generate scaffoldすると`Unknown alias: default (Psych::BadAlias)`とエラーが出る
## 結論
Gemfileで`webpacker`のバージョンを `~> 5.0`と指定すればエラーが出なくなる。
なぜかはわからない。## 詳細
### やりたかったこと
Railsアプリでscaffoldを使ってリソースを作りたかった。### 環境
– ruby 3.1.2
– rails 6.1.6
– bundle 2.2.17### やったこと
基本的にRailsチュートリアル第2章に従っています。
1. `rails new toy_app`でアプリを生成、`cd toy_app`で移動
1. Gemfileを下記のように書き換え
1. `bundle config set –local without ‘production’`で設定
1. `bundle install`でgemのインストール
1. `rails webpacker:install`
1. `rails generate scaffold User name:string email:string`でリソースを作ろうとする“` Gemfile
source ‘https://rub
orderメソッドについてまとめ
## はじめに
初心者なりにまとめたものになりますので、間違いにお気づきの方は、お手数ですが、コメント頂けると幸いです。内容は、Orderメソッドのまとめになります。
## 目次
– orderメソッド の雛形
– orderメソッド 並び順のオプション
– orderメソッドとallメソッド## orderメソッド の雛形
変数 = モデル名.order(“カラム名”)
変数:お好みの変数を定義する
モデル名:並び替えたいテーブルを管理するモデルの名前
カラム名:並び替えさせたいカラムの名前例.
テーブル名: mail
カラム名:id, title, content, user_id, created_at, update_at
mailテーブルのuser_idで並び替えさせたい場合は、以下となります。hoge = Mail.order(“user_id”)
## orderメソッド 並び順のオプション
hoge = Mail.order(“user_id ASC”)
hoge = Mail.order(“user_id