かんたん登録とは?
ワンクリックでSign-upとLoginができるユーザーフレンドリーな機能
準備
users/index.html.erbに以下の記述を追加
<%= link_to "簡単ログイン", easy_login_path, method: :get, class: 'btn slide-bg' %>
routes.rbに以下の記述を追加
get "easy_login" => "users#easy_login"
ワンクリックでSign-upとLoginができるユーザーフレンドリーな機能
<%= link_to "簡単ログイン", easy_login_path, method: :get, class: 'btn slide-bg' %>
get "easy_login" => "users#easy_login"
before:users/_form.html.erb
<%= form_for user do |f| %> <%= render 'shared/error_messages', object: f.object %> <div class="inputWithIcon"> <%= f.text_field :name, class: 'form-field', placeholder: 'Your name' %> </div> <div class="inputWithIcon"> <%= f.email_field :email, class: 'form-field', placeholder: 'Email' %> </div> <%= f.password_field :password, class: 'form-field', placeholder: 'パスワード' %> <%= f.password_field :password_confirmation, class: 'form-field', placeholder: 'パスワード確認' %> <%= f.submit "登録", class: "btn btn-submit" %> <% end %>
after:users/_form.html.erb
<div class="new-todo-list-form"> <%= form_with model: user, local: true do |f| %> <%= render 'shared/error_messages', object: f.object %> <div class="inputWithIcon"> <%= f.text_field :name, class: 'form-field', placeholder: 'Your name' %> </div> <div class="inputWithIcon"> <%= f.email_field :email, class: 'form-field', placeholder: 'Email' %> </div> <%= f.password_field :password, class: 'form-field', placeholder: 'パスワード' %> <%= f.password_field :password_confirmation, class: 'form-field', placeholder: 'パスワード確認' %> <%= f.submit "登録", class: "btn btn-submit" %> <% end %> </div>
local: trueを入れたのはエラーメッセージを表示させるため。
shared/_error_messages.html.erb
<% if object.errors.any? %> <div id="error_explanation"> <div class="alert alert-danger"> <% object.errors.full_messages.each do |msg| %> <li><h4><%= msg %></h4></li> <% end %></div> </div> <% end %>
local: trueがない場合表示されないが、local: trueを追加されば表示される。
before:sessions/new.html.erb
<h1>ログイン</h1> <div class="login-form"> <%= form_for(:session, url: login_path) do |f| %> <%= f.label :メールアドレス, class: 'label' %> <%= f.email_field :email, class: 'form-field' %> <%= f.label :パスワード, class: 'label' %> <%= f.password_field :password, class: 'form-field' %> <%= f.label :次回ログインを省略する, class: "checkbox inline" do %> <%= f.check_box :remember_me %> <span>次回ログインを省略する</span> <% end %> <%= f.submit "ログイン", class: "btn btn-submit" %> <% end %> <br> <%= link_to(content_tag(:i, 'はじめての方はこちら', class: "fas fa-angle-double-right faa-horizontal animated-hover fa-pull-left", style: "color: sienna;"), new_user_path) %> </div>
after:sessions/new.html.erb
<h1>ログイン</h1> <div class="login-form"> <%= form_with scope: :session, url: login_path do |f| %> <div class="inputWithIcon"> <%= f.email_field :email, class: 'form-field', placeholder: 'Email' %> <%= f.password_field :password, class: 'form-field', placeholder: 'パスワード' %> </div> <%= f.label :次回ログインを省略する, class: "checkbox inline" do %> <%= f.check_box :remember_me %> <span>次回ログインを省略する</span> <% end %> <%= f.submit "ログイン", class: "btn btn-submit" %> <% end %> <br> <%= link_to(content_tag(:i, 'はじめての方はこちら', class: "fas fa-angle-double-right faa-horizontal animated-hover fa-pull-left", style: "color: sienna;"), new_user_path) %> </div>
scopeを加えるだけ。
とりあえず翻訳機にかけると↓
となっているので以下を記述↓(Railsの場合)
<% end %>
問題が解消された!
if文などでendが必要なときにendが記述されてないときによくあるエラーのようです。
経緯:Macの空き容量が少なくなっていたのでClean / Purge dataで空き容量を増やした後に、
Dockerでdocker-compose upでコンテナを起動した時に発生したエラーです。
解決方法
gemfile.lockの記述を全て削除(まっさらな状態)した後に以下のコマンドをします。
$ rm gemfile.lock
$ docker-compose build
$ docker-compose up
エラーが出なくなっているのを確認したらOKです。
すでにテーブルに存在するレコードを一括で削除するメソッドです。
usersテーブル(1)にtasksテーブル(多)がhas_manyで紐付いています。
# == Schema Information # # Table name: users # # id :bigint not null, primary key # admin :boolean default(FALSE) # email :string(255) # image :string(255) # name :string(255) # password_digest :string(255) # remember_digest :string(255) # created_at :datetime not null # updated_at :datetime not null #
class User < ApplicationRecord has_many :tasks, dependent: :destroy accepts_nested_attributes_for :tasks, allow_destroy: true
1対多の場合は1の方(例としてuserとする)has_many :tasks, dependent: :destroyを追加記述することで、userを消したときに紐付いているtaskも削除されるようにできる!
module SessionsHelper # 記憶トークンcookieに対応するユーザーを返す def current_user if (user_id = session[:user_id]) @current_user ||= User.find_by(id: user_id) elsif (user_id = cookies.signed[:user_id]) user = User.find_by(id: user_id) if user && user.authenticated?(cookies[:remember_token]) log_in user @current_user = user end end end # 渡されたユーザーがログイン済みユーザーであればtrueを返す def current_user?(user) user == current_user end # 記憶したURL (もしくはデフォルト値) にリダイレクト(フレンドリーフォワーディング) def redirect_back_or(default) redirect_to(session[:forwarding_url] || default) session.delete(:forwarding_url) end end
整数 N が入力として与えられます。
1からNまでの整数を1から順に表示してください。
ただし、表示しようとしている数値が、
・3の倍数かつ5の倍数のときには、”Fizz Buzz”
・3の倍数のときには、”Fizz”
・5の倍数のときには、”Buzz”
を数値の代わりに表示してください。
1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 Fizz Buzz 16 17 Fizz
1.繰り返しを使う
2.繰り返しは基本0から始まってしまう
3.if文で各値を振り分けてあげる
4.0のとき判定がFizuBuzzと出力されてしまう
5.それをどうするか考える。
# Nを受け取る n = gets.to_i #範囲を作成する。(1から初めたいので) m = (1..n) for num in m do if num % 15 == 0 puts "Fizz Buzz" elsif num % 3 == 0 puts "Fizz" elsif num % 5 == 0 puts "Buzz" else puts num end end puts
# Nを受け取る
n = gets.to_i
1.upto(n) do |i|
if (i % 15).zero?
puts 'Fizz Buzz'
elsif (i % 3).zero?
puts 'Fizz'
elsif (i % 5).zero?
puts 'Buzz'
else
puts i
end
end
puts
# Nを受け取る(例:18) n = gets.to_i #範囲を作成する。(1から初めたいので)(中身1..18) m = (1..n) #eachで1から18まで18回繰り返してもろて各値をif文で振り分ける m.each do |m| if m % 15 == 0 puts "Fizz Buzz" elsif m % 3 == 0 puts "Fizz" elsif m % 5 == 0 puts "Buzz" else puts m end end
ERROR Rule can only have one resource source (provided resource and test + include + exclude)
ERROR ルールは 1 つのリソースソースしか持つことができません(提供リソースとテスト + 包含 + 除外) と表示されました。
npmの依存関係の問題に関連しているようです。
npm i -D webpack@^4.46.0
カレントディレクトリに指定のパッケージをインストールするときに package.json の devDependencies欄 にパッケージ名が記録される。
④実行結果
npm WARN idealTree Removing dependencies.webpack in favor of devDependencies.webpack
npm WARN idealTree dependencies.webpack を削除して devDependencies.webpack を優先します。
added 74 packages, removed 121 packages, changed 29 packages, and audited 1290 packages in 14s
npm ruv dev で無事にサーバーが起動できました!
added 2 packages, and audited 1289 packages in 7s
105 packages are looking for funding
run `npm fund` for details
90 vulnerabilities (84 moderate, 6 high)
To address issues that do not require attention, run:
npm audit fix
To address all issues (including breaking changes), run:
npm audit fix --force
Run `npm audit` for details.
2パッケージ追加、7sで1289パッケージの監査を実施
105個のパッケージがを募集しています
詳細は `npm fund` を実行してください。
90件の脆弱性(中程度84件、高程度6件)
注意を払う必要のない問題に対処するには、実行します。
npm audit fix
すべての問題(ブレークチェンジを含む)に対処するには、実行します。
npm audit fix --force
詳細は `npm audit` を実行してください。
npm audit fix
私の場合これで脆弱性が減りました・・・が0になってはいないので
引き続き調査します・・・
まず初めにPace.jsをコチラから手に入れます
https://raw.githubusercontent.com/HubSpot/pace/v1.0.0/pace.min.js
作成してから時間が立ってだいぶ忘れてきているのですぐに思い出せるように残しておきます。
ワンクリックでSign-upとLoginができるユーザーフレンドリーな機能
<%= link_to "簡単ログイン", easy_login_path, method: :get, class: 'btn slide-bg' %>
get "easy_login" => "users#easy_login"