20210915のRubyに関する記事は15件です。

deviseで作成したログインページのviewの編集が反映されない(メモ)

事象詳細 devise導入後、Viewを編集して反映されていたのに何故か急に反映されなくなり、devise導入直後のようなレイアウトに戻ってしまった。 試したこと ・rails server再起動 ・bundle install ・DBのrollback、migrate ・PCの再起動 上記を何度繰り返しても改善されなかった ログを確認 rails serverコマンドで立ち上げる際にターミナルのコマンドをよく見てみると、いつものrender先ではないことに気がついた Rendering layout /Users/*****/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/letter_opener_web-1.4.0/app/views/layouts/letter_opener_web/letters.html.erb Rendering /Users/*****/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/letter_opener_web-1.4.0/app/views/letter_opener_web/letters/index.html.erb within layouts/letter_opener_web/letters Rendered /Users/*****/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/letter_opener_web-1.4.0/app/views/letter_opener_web/letters/index.html.erb within layouts/letter_opener_web/letters (Duration: 4.9ms | Allocations: 882) Rendered /Users/*****/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/letter_opener_web-1.4.0/app/views/layouts/letter_opener_web/_styles.html.erb (Duration: 0.7ms | Allocations: 46) Rendered /Users/*****/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/letter_opener_web-1.4.0/app/views/layouts/letter_opener_web/_javascripts.html.erb (Duration: 0.2ms | Allocations: 45) Rendered layout /Users/*****/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/letter_opener_web-1.4.0/app/views/layouts/letter_opener_web/letters.html.erb (Duration: 7.3ms | Allocations: 1227) 立ち上げてほしいViewsファイルを指していない。 どこを指してる。。。。。? 解決方法 render先を元に戻すにはconfig/initializers/devise.rbのconfig設定を以下のように変更する config.scoped_views = true これでapp/views/usersが優先されてrenderの指定先になる -- 参考 【Rails】認証機能を実装するdeviseの導入方法 以上
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

[Ruby] デザインパターンの簡潔サンプルコード集

概要 Ruby によるデザインパターンの簡潔なサンプルコード集. Web でデザインパターンの使用例を探しているときに、 「複雑な例での説明は要らない. それよりも簡単な例を提示してくれ.」 という思いが強かったので書き残す. コンテンツ 掲載時期 [Ruby] 簡単例: Singleton(モジュール) 2021/09 [Ruby] 簡単例: Singleton(オブジェクト) 2021/09
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【Ruby】フォーマット文字列

rubyのフォーマット文字列をまとめておく。 フォーマット文字列 意味 %y 西暦の下2桁(00-99) %Y 西暦を表す数(9999) %m 月を表す数字(01-12) %M 分(00-59) %d 日(01-31) %D 日付(%m/%d/%y) %Y-%m-%d → 2021-09-09 これが一番よく使いそう。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

[Ruby] 簡単例: Singleton(モジュール)

本シリーズのトップページ [Ruby] デザインパターンの簡潔サンプルコード集 概要 既存コードへの機能追加の際に Singleton を追加したときの記録. Singleton の概念などは省略. 単に Ruby でどう書くかだけを書き残す. ファイル構成 ・モジュール mod.rb で定義したデータを Singleton にする ・下記 user1.rb と user2.rb は mod.rb を include する . |-- mod.rb .... モジュール. |-- user1.rb .. 上記 mod.rb の使用者その1 `-- user2.rb .. 上記 mod.rb の使用者その2 実装 mod.rb 「@a」を(同一プロセス上の) プログラム各所からアクセスできるようにする module M @a = '' # 保持したい値を持たせる class << self def a() # Getter @a end def a=(b) # Setter @a = b end end end user1.rb 既存のユーザ側の冒頭処理. 前述の @a に値を設定する. #!/usr/bin/env ruby # -*- encoding: utf-8 -*- +require_relative 'mod' 略 if __FILE__ == $0 + include M + M.a = '/home/foo/.env' # ← プログラム全体から参照したいファイルを定義する 略 end user2.rb 既存のユーザ側のとある処理. 前段である user1.rb で設定された @a の値を取り出している. +require_relative 'mod' 略 class MyClass + include M def foo + puts "M.a => #{M.a}" end end 参考情報 ・https://buildersbox.corp-sansan.com/entry/2019/04/16/110000 ・Rubyによるデザインパターン 以上
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

スコアの平均点を出す方法!

◼️ スコアの平均点を出すにはどうしたらよいのか?   そんな時はaverage_scoreを使うとスコアの平均点を簡単に算出できる! 書き方: average_score = {・・・ + ・・・ + ・・・ } 上記の様に書けばOK! ・・・ の所には平均点を出すための各スコアを記述すれば良い 今日の投稿は以上です。 wagaでした!
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

VagrantでRuby on Railsの開発環境構築をしたメモ

はじめに Railsをいじったことが少しありますが、改めて勉強し直したいと思い、Railsチュートリアルをやろうとするも、開発環境構築でかなり苦戦したので、自分用のリンクメモです。先人の皆様ありがとうございます‥! もっと良い方法など教えていただけると嬉しいです 環境 macOS Catalina 10.15.7 VirtualBox 6.1 Vagrant 2.2.18 Ubuntu 18.04 Ruby 2.6.8 Ruby on Rails 6.0.3 rbenv 1.1.2-2-g4e92322 全体像 この辺の図でやることのイメージがつきました。 VirtualBoxやVagrantを用いたRails開発環境の構築方法(前編)に載っています。 やったこと 1. VirtualBoxとVagrantのインストール 公式サイトからソフトウェアをインストール VirtualBox Vagrant 2. 作業フォルダの作成 ディレクトリ名は任意 自分の場合は{User名}配下に作成 $ mkdir Vagrant $ cd Vagrant $ mkdir rails_dev 3. Vagrantfileの作成 作業フォルダでVagrantfile作成する $ vagrant init bento/ubuntu-18.04 4. Vagrantfileの修正 修正ポイント①(31行目) ポートはrails仕様で3000番ポートが使用されるため、仮想環境の3000番ポートをローカルPCの3000番ポートに転送(ポートフォワード)を行う 修正ポイント②(35行目) ホスト側(Mac)から見れるようにIPアドレスの開放を行う 修正ポイント③(46行目) 前提として、Vagrantはホスト、ゲスト間でファイルを同期できる ホスト側で好みのエディタで作業できるように、ゲスト側の作業ディレクトリと同期する設定を行う <ホスト側(Mac)の相対パス> <ゲスト側(Ubuntu)の絶対パス> となることに注意 Vagrantfile # -*- mode: ruby -*- # vi: set ft=ruby : # All Vagrant configuration is done below. The "2" in Vagrant.configure # configures the configuration version (we support older styles for # backwards compatibility). Please don't change it unless you know what # you're doing. Vagrant.configure("2") do |config| # The most common configuration options are documented and commented below. # For a complete reference, please see the online documentation at # https://docs.vagrantup.com. # Every Vagrant development environment requires a box. You can search for # boxes at https://vagrantcloud.com/search. config.vm.box = "bento/ubuntu-18.04" # Disable automatic box update checking. If you disable this, then # boxes will only be checked for updates when the user runs # `vagrant box outdated`. This is not recommended. # config.vm.box_check_update = false # Create a forwarded port mapping which allows access to a specific port # within the machine from a port on the host machine. In the example below, # accessing "localhost:8080" will access port 80 on the guest machine. # NOTE: This will enable public access to the opened port # config.vm.network "forwarded_port", guest: 80, host: 8080 # Create a forwarded port mapping which allows access to a specific port # within the machine from a port on the host machine and only allow access # via 127.0.0.1 to disable public access config.vm.network "forwarded_port", guest: 3000, host: 3000 # Create a private network, which allows host-only access to the machine # using a specific IP. config.vm.network "private_network", ip: "192.168.33.10" # Create a public network, which generally matched to bridged network. # Bridged networks make the machine appear as another physical device on # your network. # config.vm.network "public_network" # Share an additional folder to the guest VM. The first argument is # the path on the host to the actual folder. The second argument is # the path on the guest to mount the folder. And the optional third # argument is a set of non-required options. config.vm.synced_folder "./work", "/home/vagrant/work", create: "true" # Provider-specific configuration so you can fine-tune various # backing providers for Vagrant. These expose provider-specific options. # Example for VirtualBox: # # config.vm.provider "virtualbox" do |vb| # # Display the VirtualBox GUI when booting the machine # vb.gui = true # # # Customize the amount of memory on the VM: # vb.memory = "1024" # end # # View the documentation for the provider you are using for more # information on available options. # Enable provisioning with a shell script. Additional provisioners such as # Ansible, Chef, Docker, Puppet and Salt are also available. Please see the # documentation for more information about their specific syntax and use. # config.vm.provision "shell", inline: <<-SHELL # apt-get update # apt-get install -y apache2 # SHELL end 5. Vagrantを起動、接続する 起動して、接続します $ vagrant up $ vagrant ssh 6. Ruby on Railsのインストール versionやファイル名は変えましたが、下記サイトの「動作確認用の新規アプリケーションの作成」までを踏襲しました。 Vagrantの共有フォルダ設定ができていれば、rails newを実施すると、ホスト側(Mac)のディレクトリにRailsファイルができています 7. Gemfileの修正 Railsチュートリアルの「1.3.1 Bundler」以降をたどりました 8. rails serverの実施 ゲスト側(Ubuntu)で下記実施して、http://localhost:3000/にアクセスできると思います $ bundle exec rails s -b 0.0.0.0 99. エラーが出たら ひたすらエラーメッセージでググりましょう、、、ググっているうちに分かることも多いです リンク 流れの全体感 【環境構築】Ruby on Rails 6 開発環境を1時間以内に手に入れる VagrantでRailsのローカル開発環境構築する VagrantでRuby On Rails開発環境を構築~デプロイ Vagrant周り(Vagrantfileの修正内容など) [Rails][Vagrant]Vagrantの rails server で起動しているアプリケーションにローカルPCからブラウザアクセスする VirtualBoxやVagrantを用いたRails開発環境の構築方法(前編) Vagrantで共有フォルダ設定(ファイル共有)する方法【VirtualBox】 vagrant upしようとすると「To fix this, modify your current project’s Vagrantfile to use another port. Example, where ‘1234’ would be replaced by a unique host port:」というエラーがでる。 Rails周り 【Rails 6.0.0.rc2】rails s したら RAILS_ENV=development environment is not defined in config/webpacker.yml, falling back to production environment Exiting で怒られた。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Qiitaの書き方

簡単な記述から覚えていく! まずは記事を書くことから覚えていく様にしたいと思います! まだまだ使いこなせていないので、自分のアウトプット用な感じですが汗 初心者ならではの、わかりやすいように書いていきたいと思います! 1,タイトルの記述  #をつけて記述すると文字が大きくなり見出しになります! 下に例を書いてみます! タイトル #タイトル  注意点!! #は半角でないとダメです! 2,コードの記述 コードの挿入は``でコードを記述! 最初と最後に記述します! 注意点!!  はバッククオート3つです。 例を書いてみます! *例の為、全角で書いてあります! ``` ←半角 def destroy eat = Eat.find(params[:id]) eat.destroy redirect_to root_path end ```←これが正しい形 def destroy eat = Eat.find(params[:id]) eat.destroy redirect_to root_path end このように記事を載せれます! 応用でファイル名をつけることも可能です! 書き方は、 ```php:(ファイル名)です! 例を書いてみます! ```php:contoroller.rb  def destroy eat = Eat.find(params[:id]) eat.destroy redirect_to root_path end ```←これが正しい形 contoroller.rb def destroy eat = Eat.find(params[:id]) eat.destroy redirect_to root_path end このように記事を載せれます! まとめ 120%合っているか自信はないのですが。。。汗 とにかく手探りですが、まずは自分自身使いこなしていきたいと思います! 今後も色々と試していきます! ご指導やご意見お待ちしております(_ _)
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

コントローラの使われ方がわかんない

MVCのことはちゃんと理解した方がいいから備忘録。 1.コントローラとは MVCモデルのC。ユーザーからのリクエストを受け取り、モデルを介してデータを授受したり、ビューを用いてHTML出力を生成するもの。 見方を変えると、コントローラはモデルとビューの仲介をしているとも取れる。モデルのデータをビューで使えるようにすることで、データをビューで表示したり、入力されたデータでモデルを更新したりする。 2.コントローラの作り方 ターミナルにおいて下記のように入力して生成する。 % rails g controller (コントローラ名) コントローラの名前は複数形を使うことが一般となっている。 絶対ではないが遵守することで、既存のルーティングジェネレータがそのまま使えたり、名前付きのルーティングヘルパーの用法がアプリケーション全体で一貫する。 3.メソッドとアクション railsのコントローラは全てApplicationControllerを継承したRubyのクラスとなっている。例えば、SamplesControllerというコントローラがあったとして下記のような記述が冒頭にあることから左記のようなことがわかる。 class SamplesController < ApplicationController #継承を示している 記述の凡例 class SamplesController < ApplicationController def new end end このような記述の場合、/samples/newにアクセスをするとSamplesControllerのインスタンスを作成してnewメソッドを呼び出す。ここでnewメソッドは内容が空でも、railsではアクションで特に指定がない場合はnew.html.erbというビューを返すことになっている。 4.パラメータ コントローラのアクションではユーザーから送られてきたパラメータにアクセスをして何かの作業を行う。 パラメータのは2種類あって、一つはURLの一部として送られる「クエリ文字列(URL)パラメータ」もう一つはフォームから受け取る「POSTパラメータ」がある。いずれもparamsというハッシュでアクセスできる クエリパラメータ例 https://hogehoge.jp/fugafuga?id=1 上記の?id=1の部分がクエリ文字列(URL)パラメータにあたる。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

[Ruby] AtCoder過去問 A - Candy Distribution Again

はじめに AtCoder過去問A問題をRubyで解いてみました。 よろしくお願いします。 問題はこちらから確認お願いします。↓ A - Candy Distribution Again まずは入力を受け取ります。 n, x = gets.split.map(&:to_i) a = gets.split.map(&:to_i).sort 配列の中は昇順に並び替えてaに代入しています。 後ほど繰り返し処理を行なって、繰り返した回数が答えとなるため、変数countを用意して、0を代入します。 n, x = gets.split.map(&:to_i) a = gets.split.map(&:to_i).sort count = 0 while文で繰り返し処理をしていきます。 条件は配列の中身がなくなるまで行うようにします。 n, x = gets.split.map(&:to_i) a = gets.split.map(&:to_i).sort count = 0 while a[0] != nil お菓子を最小の数で喜ぶ子供から分け与えていきます。 配列の中は昇順になっているのでshiftメソッドで手前から取り出して削除していきます。 そして処理したらcountに+1します。 さらに全ての子供たちにお菓子を分け与える前に、お菓子が無くなったら、処理を抜け出すように記述します。 n, x = gets.split.map(&:to_i) a = gets.split.map(&:to_i).sort count = 0 while a[0] != nil x -= a.shift count += 1 if x < 0 break end end ここで私がめちゃめちゃハマったんですが、この問題の子供達、自分が要求するお菓子の数ぴったしじゃないと、満足しないらしいです。 つまり10個あげると喜ぶ子供に20個あげると喜ばないんですww んなことあるかと思いながら、コードを書き直しましたが、、、 常識にとらわれず、ちゃんと問題を読みましょうw ですので、もし子供が満足する数よりも少なかったり、多かったりした時はcountから-1してあげます。 n, x = gets.split.map(&:to_i) a = gets.split.map(&:to_i).sort count = 0 while a[0] != nil x -= a.shift count += 1 if x < 0 break end end if x != 0 count -= 1 end puts count これで完成です。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【web開発初心者】おすすめRuby on railsのUdemy講座まとめ。高コスパ講座を6つ厳選

webアプリのサーバーサイド開発に人気の高いRuby on RailsのオススメUdemy講座のまとめです。 数あるRoRの講座の中でも初心者に優しく評価が高いものだけを厳選しました。 Rubyの文法やweb開発(サーバーサイド)の経験が現時点で無くても大丈夫です。 はじめてのRuby on Rails入門-RubyとRailsを基礎から学びWebアプリケーションをネットに公開しよう おすすめ度:★★★★★ ・はじめてのRuby on Rails入門-RubyとRailsを基礎から学びWebアプリケーションをネットに公開しよう この講座で学べる内容 ・Ruby on RailsとRubyを使った実践的な開発スキル ・Ruby on RailsとRubyの違いを理解 ・Webサービスを公開する方法 ・クラウドサービス、HerokuのPaaS(Platform as a Service)を使ってサービスをネット上に公開する方法を学ぶ ・AWS Cloud9を使った開発環境の構築 ・Web系の企業転職の際に魅力的に映るポートフォリオサイトの作成 Ruby on Rails 5入門 -Rubyプログラミングの基礎から学べる- おすすめ度:★★★★★ ・Ruby on Rails 5入門 -Rubyプログラミングの基礎から学べる- この講座で学べる内容 ・プログラミング言語Rubyのプログラミングができる ・Cloud9を使ってRuby on Rails 5の開発環境が構築できる ・Ruby on RailsによるHello World! プログラムが書ける ・シンプルな電話帳アプリの開発を通して、CRUDアプリケーションの開発ができる ・Ruby on Railsを学ぶ上で重要な用語の意味を知ることができる フルスタックエンジニアが教える 即戦力Railsエンジニア養成講座 おすすめ度:★★★ ・フルスタックエンジニアが教える 即戦力Railsエンジニア養成講座 この講座で学べる内容 ・Ruby on Rails 5を使用した即戦力レベルのアプリケーション作成のスキルを身に着けることができます ・Webアプリケーションを作成できるようになります ・「なんとなく動く」ではなく本格的に開発を行うためのノウハウを学ぶことが出来ます ハンズオンで学ぶRuby on Rails 6 おすすめ度:★★★★★ ・ハンズオンで学ぶRuby on Rails 6 この講座で学べる内容 ・Rails 6の新機能Action Textを利用したブログページの実装方法 ・デバッグツール(pry、pry-rails、pry-byebug、等)の導入方法から使用方法及びツールを用いたソースコードリーディングの方法について ・ActionTextが生成する各種テーブルの相関やテーブル内部のデータ構造 ・Action Textが提供する各種レコードの属性に対する検証(バリデーション)の方法 ・経済的にストレージスペースを活用するための1つのアイデア [Rails4系です] Rails入門:基礎をSinatraで理解しRailsで作れるようになる おすすめ度:★★★★ ・[Rails4系です] Rails入門:基礎をSinatraで理解しRailsで作れるようになる この講座で学べる内容 ・「最初はRailsを触らずにSinatraでの開発を通じて」WEBサービスの基本的で普遍的な仕組みを理解することができます。 ・フレームワークの仕組みをある程度理解した上でRailsのWEBサービスが構築できるようになります。 ・WEBサービスに機能を追加しようとした際に、何をすればいいのかがイメージできるようになります。 ・「最初のオリジナルサービス」を開発する一歩手前までの必要な知識を獲得できます。 【3日でできる】はじめての Ruby on Rails 4 入門(Rubyから学べる) おすすめ度:★★★★ ・【3日でできる】はじめての Ruby on Rails 4 入門(Rubyから学べる) この講座で学べる内容 ・Rubyの基本文法について理解できるようになる ・データベースと連動したアプリケーションをRuby on Railsで作成できるようになる ・Railsのコマンドやメソッドを理解できるようになる その他のUdemy講座 ・Java初心者に超オススメ出来るUdemy動画講座7選まとめ。最速マスター特化 ・Typescript入門におすすめのユーデミー講座5選。JS未経験者も可 ・【Androidアプリ開発】Kotlin初心者向けの超おすすめUdemy講座6選をまとめた ・SQL未経験者にオススメのユーデミー動画講座6選!データ分析したい人向け ・【Python】サーバーサイド初心者にオススメのUdemyのDjango動画講座5選 ・iPhoneアプリ作成入門に最適なUdemyのオススメSwift講座5選 ・【学習効果・高】ブロックチェーン入門に最適なUdemy講座おすすめ6選
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Example title

Example
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

[Rails6]削除ボタンが動作せず、アラートも動かず、削除ボタンを押すと参照してしまう問題の解決方法

はじめに 「現場で使えるRuby on Rails5」で勉強している際に削除ボタンが動作しなく、エラーもなかったため少し沼にはまったので、解決までの過程を記録として残しておきます。(Javascriptについて分かって入れば楽に解決できることです) 前提・使用環境 ・Windows 10 ・Ruby 3.0.2 ・Rails 6.1.4.1 ・yarn 1.22.10 コード index.html.slim h1 タスク一覧 = link_to "新規登録", new_task_path, class: 'btn btn-primary' .mb-3 table.table.table-hover thead.thead-default tr th = Task.human_attribute_name(:name) th = Task.human_attribute_name(:created_at) th tbody - @tasks.each do |task| tr td = link_to task.name, task_path(task) td = task.created_at td = link_to "編集", edit_task_path(task), class: 'btn btn-primary mr-3' = link_to "削除", task , method: :delete, data: {confirm: "タスク「#{task.name}」を削除します。よろしいですか?"},class: 'btn btn-danger' tasks_controller.rb class TasksController < ApplicationController def index @tasks = Task.all end def show @task = Task.find(params[:id]) end def new @task = Task.new end def edit @task = Task.find(params[:id]) end def create task = Task.new(task_params) task.save! redirect_to tasks_url, notice: "タスク「#{task.name}」を登録しました。" end def update task = Task.find(params[:id]) task.update!(task_params) redirect_to task_url, notice: "タスク「#{task.name}」を更新しました。" end def destroy task = Task.find(params[:id]) task.destroy redirect_to tasks_url, notice: "タスク「#{task.name} 」を削除しました。" end private def task_params params.require(:task).permit(:name, :description) end end 起きた問題 Todoリストを作成したいる際に、削除ボタンを実装していた。 参考書通りにやっているのにも関わらず削除ボタンが動作せずに、削除ボタンをクリックすると参照してしまう問題が発生。 link_to "削除", task , method: :delete, data: {confirm: "タスク「#{task.name}」を削除します。よろしいですか?"},class: 'btn btn-danger' 特に削除ボタンのコードは間違えてなく、destroyアクションも間違っていない。 ブラウザーにもエラーが出ずここで手が止まる。 ここでJavascriptでアラートを data: {confirm: "タスク「#{task.name}」を削除します。よろしいですか?"} 出していたため、Javascriptがうまく動作していないと考えた。 javascripts/packs/application.js で「rails-ujs」が読み込まれているのを確認。 javascripts/packs/application.js import Rails from "@rails/ujs" javascripts/packs/application.js で alert(1) を記入してみると、やはりアラートが発生せずJavascriptがうまく読み込まれていないことが分かる。 application.html.slimの head のところに javascript_pack_tagが記入されていることも確認。 application.html.slim javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' ここでコンソールを見てみると Browser. bootstrap.esm.js:1 Uncaught Error: Cannot find module '@popperjs/core' とエラーが出ていた!! これだ!と思い、そのエラーについて調べてみと @popperjs/core moduleが見つけられないということだったので Yarnで上記モジュールをインストールしたらいけた。 解決策 下記のコマンドを実行 yarn install @popperjs/core うまくアラートも表示されて削除ボタンを動作した。 感想 すぐにコンソールを見ていれば、簡単に解決できるものでした。 最初はRubyのコードに問題があると思い込んでいたのでコードとずっと睨めっこしてましたww もっと多角的視点を持って取り組んでいきたいと思います。 備考 PowerShellを使ってたため、上記の解決策のコマンドを打つと下記のエラーが発生したため、その解決策も載せておきます。 エラー C:\Users yarn install @popperjs/core yarn : 'このシステムではスクリプトの実行が無効になっているため、ファイル C:\Users\nisin\AppData\Roaming\npm\yarn.ps1 を読み込むことができません。詳細については、 「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=135170) を参照してください。 発生場所 行:1 文字:1 + yarn install @popperjs/core Restricted : 用語 'Restricted' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記述されているこ 発生場所 行:1 文字:1' + Restricted + ~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (Restricted:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException 解決策 下記のコマンドを実行 PS C:> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process ここについて詳しく知りたい人は下記の参考文献から見てください。 参考文献 [Rails6] Bootstrapが適用されない時の解決方法 PowerShellでこのシステムではスクリプトの実行が無効になっているため、ファイル hoge.ps1 を読み込むことができません。となったときの対応方法
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

[Rails]MVCについて自分の言葉でまとめてみる

先日、RailsのMVCについて説明する機会があったときに、 (緊張も相まって)全く日本語にならず、 「言語化できないって理解してるつもりでも理解できてないってことだな」 と猛反省したので、全くRailsを知らない人にも伝わるように、改めてまとめてみることにしました。 誤っている部分などありましたらご指摘いただけますと幸いです。 MVCとは Model / View / Controller の頭文字をとってMVCです。 Railsなど、Webアプリケーションを作るときに使うフレームワークの多くが、 このMVCの構造によって成り立っています。 Modelとは そのアプリケーションのデータベースの窓口のようなものです。 基本的にはデータベースの各テーブルに一つあって、データベースとのやりとりをしてくれます。 Viewとは Webアプリケーションの見た目の部分です。 Controllerとは アプリケーションがどう動くかをここで決めています。 (ほとんどが)各Modelに紐づいていて、そのModelにまつわる動きをコントロールしています。 動きをコントロール:Modelにお願いしてデータをとってきたり、そのデータを反映させたviewを返したりしています。 Routerとは いきなり出てきましたが、こちらもアプリケーションにとって大切な役割を担っています。 クライアントから渡ってきた、URLとHTTPメソッドから、どのControllerのどのActionを取るか、という指示を出している、案内板みたいなものです。 ざっくりまとめると クライアントからあったリクエストに応じて、 Routerが「こっちのControllerのこのActionを動かすんだよー」と指示。 Routerから指示があったControllerが指示されたActionをする。 (Modelを介してデータをやりとりしたり、Viewにデータを渡したり) ControllerがActionした結果を、人に見やすい形でViewで表現する。 参考 Railsガイド
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Example title

Example
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【Rails】Data Confirm Modal - backdrop

backdrop とは 直訳すると劇場幕のことで、Webではモーダルを開いたときの背景の黒いところのことを言います。 backdropをクリックしてもモーダルが非表示にならない方法 dataConfirmModal.confirm({ title: 'Are you sure?', text: 'Really do this?', commit: 'Yes do it', cancel: 'Not really', zIindex: 10099, onConfirm: function() { alert('confirmed') }, onCancel: function() { alert('cancelled') }, onHide: function() { alert('hidden') }, // これを追加することで、backdropをクリックしてもモーダルが非表示にならない backdrop: 'static' }); 参考 GitHub ifad / data-confirm-modal https://github.com/ifad/data-confirm-modal
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む