20210621のRailsに関する記事は12件です。

webpackerでBootstrap4の導入

初めに Railsでwebpackerを使ってBootstrap4の導入方法のまとめ。 導入手順 Gemfileにwebpackerを追加して、インストール (今回は既に入っていたので、飛ばしてます。) Gemfile gem 'webpacker', '~> 3.5 bundle installの実行 Webpackerをプロジェクトにインストール  bundle exec rails webpacker:install これでWebpackerを実行するための各種ファイルが生成。 app/javascript以下にsrcというディレクトリを作成し、application.scssを作成。 ディレクトリはapp/javascript/src/application.scssとなる。 Bootstrapの導入 yarn add bootstrap@4.3.1 jquery popper.jsを実行 BootstrapのJSをapp/javascript/packs/application.jsで、 CSSをapp/javascript/src/application.scssでインポート app/javascript/packs/application.js import 'bootstrap' import '../src/application.scss' app/javascript/src/application.scss @import '~bootstrap/scss/bootstrap'; をそれぞれ追記。 アプリケーションがWebpackerでビルドしたJS/CSSを読み込むよう設定する。 ```app/views/layouts/application.html.erb <!DOCTYPE html> RailsBootstrapTemplate <%= csrf_meta_tags %> <%= csp_meta_tag %> <%= javascript_pack_tag 'application' %> <%= stylesheet_pack_tag 'application' %> <%= yield %> ``` 以上。 参考資料 webpackerでBootstrap4の導入方法
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Carrierwaveの実装 

はじめに 画像登録の実装の際に、carrierwaveを用いて実装しました。 その時に調べたこと感じたことの記録です。 結論 実装自体は単純で、使い勝手が良い。 ドラッグ&ドロップなどにも対応可能。 手順 1. インストール ターミナル上で以下のコードを実行し、最新版のcarrierwaveをインストール $ gem install carrierwave Gemfile内に以下を追加 gem 'carrierwave', '~> 2.0' 2. 実装 uploaderの実装 以下のコードを実行して、uploaderを実装する。 terminal $ bundle exec rails generate uploader ### ###の部分はimageやavatorなど、その時のカラムに合わせて変えてください。 そうすると app/uploaders/###_uploader.rb というファイルが作成されている。 中身は「保存先の指定」「アップロードする画像の種類」などの指定ができる。 uploaderを作成したら、モデルとの関連付け 以下のコードを関連付けしたいモデルに追記する。 (今回で言うと、document_images.rb) mount_uploader :carrierwave用に作ったカラム名, carrierwaveの設定ファイルのクラス名 ファイルのアップロード viewで画像を登録するのに、以下をviewのファイル書く。 今回はnew.html.erbにコードを書いてます。 new.html.erb <%= f.label :image %> <%= f.file_field :image %> 注意点 複数枚の画像を登録する場合、まとめたファイルがdbに登録されます。 そのため、1枚1枚の写真を取り出すには別のメソッドを使用する必要があるそうです。 【Rails】画像を複数投稿したい 参考サイトにもありますが、アンチメソッドのようです・・・ また、 mount_uploader :carrierwave用に作ったカラム名, carrierwaveの設定ファイルのクラス名 のmount_uploaderを複数形にすると、carrierwave用に作ったカラムを配列形式で扱わないといけなくなるので、タイポ要注意です! さいごに 上記内容で、一通り実装は出来ます。 が、アンチメソッドを使った実装はまだしていないので、挙動は不明です。 ドキュメント自体に画像が登録されるかについても、show.html.erbにコードを書いていないので、別の記事で書きます!
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

1人目が2人目をフォローする、2人目が3人目をフォローする... の様なズレと組み合わせを生成するアルゴリズム[Ruby](zip, rotate)

1人目のユーザーが2人目のユーザーをフォローする。 2人目のユーザーが3人目のユーザーをフォローする。...など、 少しずれた関係性を生み出す際に利用可能なアルゴリズムを考えついたのでここで共有します。 2つのメソッドを組み合わせる事で、生成することが可能です。 結論 users = User.all users.zip(users.rotate) do |following_user, followerd_user| following_user.follow(followerd_user) end 省略形 User.all.zip(User.all.rotate) { _1.follow(_2) } 恐らくこれで動作すると思います!followというtwitterなどで用いられる関係性を生み出す独自メソッドです。省略形はruby2.7以降で動作すると思います! rotate メソッド a = [1, 2, 3, 4] a.rotate # => [2, 3, 4, 1] a # => [1, 2, 3, 4] a.rotate(2) # => [3, 4, 1, 2] a.rotate(-1) # => [4, 1, 2, 3] こちらはメソッド名から想像が着くように、引数に渡した数字分だけ配列の要素をズラすメソッドになります。 zip メソッド p [1, 2, 3].zip(["A", "B", "C"], ["a", "b", "c"]) # => [[1, A, a], [2, "B", "b"], [3, "C", "c"]] p [1,2].zip([:a,:b,:c], [:A,:B,:C,:D]) # => [[1, :a, :A], [2, :b, :B]] こちらのメソッドは痒いところに手が届くようなメソッドです。 self配列に対して、引数の配列の同じインデックスに対応する要素を抽出し、それらを組み合わせて新たな配列を生成するメソッドです。 個人的にはメソッド名が好きです。 まとめ 上記2つのメソッドを活用することで、 ズラした配列を生成し、 元の配列とズラした配列を組み合わせた配列を生成する 新たな配列に対して、2つの要素を引数に取る繰り返し処理 といった流れで、対応していきます。以下動作反応。 users = User.all => TRANSACTION (0.4ms) BEGIN User Load (15.5ms) SELECT `users`.* FROM `users` [#<User id: 1, name: "Test_User1", created_at: "2021-06-20 04:34:55.577201000 +0900", updated_at: "2021-06-20 04:34:56.195767000 +0900">, #<User id: 2, name: "Test_User2", created_at: "2021-06-20 04:34:56.513694000 +0900", updated_at: "2021-06-20 04:34:56.607071000 +0900">, #<User id: 3, name: "Test_User3", created_at: "2021-06-20 04:34:57.040755000 +0900", updated_at: "2021-06-20 04:34:57.147144000 +0900">, #<User id: 4, name: "Test_User4", created_at: "2021-06-20 04:34:57.636523000 +0900", updated_at: "2021-06-20 04:34:57.876562000 +0900"] users.zip(users.rotate) do |following_user, followerd_user| following_user.follow(followerd_user) end TRANSACTION (0.4ms) SAVEPOINT active_record_1 User Load (0.7ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 1 LIMIT 1 Relationship Create (2.4ms) INSERT INTO `relationships` (`follower_id`, `followed_id`, `created_at`, `updated_at`) VALUES (1, 2, '2021-06-21 13:29:30.279783', '2021-06-21 13:29:30.279783') : 余談 これらのメソッドは、Qiitaを通してあるユーザー様にご教授いただきました。 自分の記事に色々とコメントしてくださり、いつも助けられております。 アウトプットする事で視野が広がるいい経験でしたっ
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Rails Tutorialをローカル環境で始めるためのセットアップ例-for windows10

初投稿です。 普段はJavascriptを中心にフロントエンドの勉強をしているのですが、Web開発について体系的に勉強していきたいなと思い、Rails Tutorialをやってみることにしました。ボリューム感もお手頃だし。 はじめに Rails Tutorialの第6版-1章ではAWSのCloud9(クラウドIDE)を用いた実行環境のセットアップが紹介されており、ややこしい環境構築をすっ飛ばしてすぐに学習が始められるよう配慮がなされています。(素晴らしい) そのまま進めるのが安牌なのは分かっているのですが、変なところで凝り性な私は「どうせやるならローカル環境でやりてえよ!!」と思い、色々調べながら環境構築を進めました。 結論何とかなったのですが、案の定色々とハマってしまったので、これからローカル環境でRuby on rails(Rails Tutorial)を始めようとしている初学者の人(よしときゃいいのに)の一助になればと思い筆を執った次第です。 こんな記事を書いておいてなんですが、初学者の方にとってはかなり煩雑な作業になってくるかと思います(爆)ムリだと思ったら今回はローカル環境構築は潔く諦めるのが吉です。無駄に時間食われるので。 ある程度ご経験のある方にとっては、「そんなの知ってるぜ?」という内容になってしまうかと思います。 また私はゴリゴリのプログラミング初学者+Ruby on railsエアプ勢なので、おかしいところがあればご指摘いただければと思います。 この記事で取り扱う内容 Ruby on rails のローカル環境構築(Win10) 前提条件 OSはWindows10 (macは触ったことが無いので何とも言えない) テキストエディタはVSCodeを使用(持っていない人はインストールを。その他のエディタは今回カバー外です。) ターミナルで最低限のコマンドが叩ける(ターミナル?なにそれ?まったくわからん!という場合は少し厳しいかも。) 無限インストールしていく ローカル環境を構築するには、色々なモジュール*のインストールが必要になってきます。 node.jsやgitなど、すでにインストールしているものがあれば飛ばしてもらって大丈夫です。 ※それぞれのインストール方法やセッティングについて詳しく解説しているとキリがないので、最低限度の説明に留めています。私の説明が足りないと感じたら、随時ググってほかのリソースをあたってください。 1. まずは今回作業するディレクトリを作成しておく VSCodeからターミナルを開いてください。(わからない場合は調べてね) 任意の場所に、今回のプロジェクト用の空ディレクトリをmkdirコマンドで作成します。(名前は自由です) それが終わったら、cdコマンドで作成したディレクトリに移動しておきましょう。 とりあえず開いたまま置いときましょう。 2. Rubyのインストール 次にRubyをインストールします。一番最初にこれをやっておいてください。 プログラミング学習ツールで有名なprogateが、下記に添付したリンク先で非常にわかりやすくRubyのインストール方法をまとめてくれています。今回の場合もこちらの手順で問題ありませんので、ここでの説明は省きます。 余裕のある人は、この記事で紹介されているRubyの実行も試してみると良いかも。キチンとインストールされているか確認する意味合いも含めて。 3-1. SQLite3のインストール ローカル用のデータベースとしてSQlite3(えすきゅーらいとすりー)をインストールします。ここが一番面倒です。 まずはSQLite3のサイトへアクセス。 https://www.sqlite.org/index.html 「Download」をクリックします Downloadを押すと、ファイルがたくさんあるページに遷移します。今回必要なのは、 Precompiled Binaries for Windows の欄にある、以下の二つのファイルです。赤枠で囲ってます。(お使いのPCがもし32bitだった場合は、一番上のファイルと一番下のファイルをDLしてください。ほとんどの人が64bitだと思いますが。) SQLite3周りの準備はもう一仕事あります() 以下の手順を行ってください。 3-2.SQLite3のファイルを、Rubyフォルダへ移動する 1.まずはDLした2つのzipをそれぞれ解凍しておく 2.次に、ファイルの移動先である、Rubyのフォルダを開いておきましょう。 ひとつ前に説明したRubyのインストールを行っていると、画像のようなファイルが見つかるかと思います。 これからSQlite3のファイルを置くのは、この中にある「bin」フォルダなので、移動しておきましょう。 Ruby27-x64 > bin というディレクトリ構成になっているはずです。 3.ファイルをRuby27-x64 > binにコピー 全てのファイルを移動するわけではないです。 これから説明する2つのファイルをコピーして、binフォルダの中に張り付けてください。 sqlite-dll-win64-x64-3360000 の中にある「sqlite3.dll」 sqlite-tools-win32-x86-3360000の中にある「sqlite3.exe」 binファイルの中身に、上の画像のようにファイルをコピーできていたら大丈夫です。 3-3.プロジェクトファイルにSQLite3をインストール 1で作業したVSCodeの画面に戻ります。 下記のコマンドでインストールを開始 $ gem install sqlite3 インストールが終わったら、バージョンを確認。 3.35.5 20~などバージョンが返ってくればサクセスです! $ sqlite3 --version 4. Bundlerのインストール ターミナルにて、下記のコマンドでインストールを開始。 $ gem install bundler 下記コマンドを入力、バージョンが帰ってくればインストール成功です! $ bundler -v 5. Node.jsのインストール https://qiita.com/echolimitless/items/83f8658cf855de04b9ce こちらの記事でNode.jsのインストール方法が解説されています。 まだインストールしていない人は、この方法でゲットしちゃいましょう。 インストールが終わったら、一応ターミナルから $ node --version を入力して正しくインストールされているか確認しておきましょう。もしバージョンが返ってこない場合は、一度VSCodeを再起動してみるといけるかもです。 7. yarnのインストール Node.jsをインストールすると、同時にnpmもインストールされているはずです。下記の段取りでインストール&バージョン確認を行ってください。 $ npm install -g yarn $ yarn -v 8. railsのインストール 下記コマンドでrailsをインストールします。 $ gem install rails バージョンを指定してインストールしたい場合は、以下のようにコマンドに追記を行ってください。 $ gem install rails -v バージョン名(6とか) バージョン確認も忘れずに。 $ rails -v 9. vscodeの拡張機能「Rails」「Ruby」のインストール VSCodeで快適にRuby on railsを書くために、拡張機能をインストールします。 この二つですね。 10. webpackerのインストール インストールには以下のコマンドを使用します。 $ rails webpacker:install ダーッとコードが流れればインストール完了です! 11. Gitのインストール こちらもprogateさんによる記事を抜粋したいと思います。 ここに書いてある手順でWindowsにGitをインストールしましょう。 Git,Githubの具体的な使い方については、Rails Tutorial本編で詳しく解説されているので、その手順通りに進めましょう。 環境構築、とりあえず終了。 ここまで進んできた方は、環境構築が完了してます。 railsアプリの作成 アプリを作るには、下記のようなコマンドを使用します。 バージョン名をアンダースコアで囲む + new + アプリの名前(任意) といった感じです。スペースに気を付けて入力してください。 $ rails _バージョン_ new アプリの名前 railsのバージョンが分からない場合は、下記のようにrails -vコマンドで調べてあげればOK。 吐き出されたバージョン番号を全部そのまま入力してください。 $ rails -v Rails 6.1.3.2 railsのアプリ作成を始めるとしばらくターミナルにログが流れるので、煙草でも吸いながら気長に待ちましょう。 とりあえず、ここまで! 少し長くなってしまったので、いったん記事をここで終わります! 走り書きなので、間違っている部分も少なからずあるかと思います。ご了承ください。 あとはRails Tutorialで紹介されているcloud9での環境構築の部分を飛ばして進めていけばOKです。 Herokuへのデプロイの項目で若干本編と異なる作業が必要になる場合があるので、それはまた追ってご紹介できればと思います。では。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

3桁区切りにする

数値の代入された変数や数値直接「.to_s(:delimited) 」を続けると3桁区切りになって表現されます
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

date.todayで本日の日付を取得

Dateクラスにtodayで日付を扱えるようになります。 ただそのままデータを確認するとSat, 19 Jun 2021になるが、 day = Date.todayとして変数に代入すると「2021-6-19」という値がGETできます。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Active Storageを使ってプロフィールに画像をつける

はじめに オリジナルアプリの新規登録の際に、画像を入力するフォームを追加して、プロフィールに画像が入れ込もうと思いました。 今回はActive Storageを使っていきたいと思います。 Active Storageとは ファイルアップロード機能を簡単に実装できるGemです。 Active Storageを使うと、画像などのファイルのアップロードを簡単にするメソッドが使用できたり、画像を保存するテーブルを簡単に作成できます。 使用するツールたち ImageMagick 画像に処理を加えることができるツールです。 画像の作成やサイズ変更、保存形式の変更などがあります。 Railsでは単体で使用する事はできず、MiniMagickというgemが必要です。 MiniMagick ImageMagickの機能をRubyで扱えるようにしてくれるGemです。 RailsでImageMagickを扱うために必要となります。 ImageProcessing MiniMagickでは提供できない、画像サイズを調整する機能を提供するGemです。 実施に導入 まずはmageMagickをインストールします。 brew install imagemagick 注意 VSCode内のターミナル内でインストールをしたらエラーが発生する可能性があるみたいなのでターミナルアプリから実行して下さい。 実際のエラー ↓↓↓↓↓ Error: No available formula or cask with the name "imagemagic". ==> Searching for a previously deleted formula (in the last month)... Error: No previously deleted formula found. ==> Searching taps on GitHub... Error: No formulae found in taps. 続いて、MiniMagickとImageProcessingをインストールします。 Gemfile gem 'mini_magick' gem 'image_processing', '~> 1.2' しっかりターミナルでインストール! bundle install 最後にActive Storageをインストール ターミナルで実行します。 rails active_storage:install コマンドを実行すると、Active Storageに関連したマイグレーションが作成されます。続けてマイグレートします。 rails db:migrate ここまではポチポチして頂ければできると思います。 DBにはこのようなテーブルが追加されます。 簡単に説明すると active_storage_blobsは実施に写真などが保存されるテーブルで、active_storage_attachmentsは中間テーブルになります。 画像を保存する 準備が整ったので実施に保存していきます。 画像を保存する際の手順は2つです。 Active StorageのテーブルとUserテーブルのアソシエーションを定義 application.rbにて、画像カラムの保存を許可 まずはUserテーブルに紐づけるためにhas_one_attachedというメソッドを利用します。 has_one_attachedとは各レコードとファイルを1対1の関係で紐づけるメソッドです。 has_one_attachedメソッドを記述したモデルの各レコードは、それぞれ1つのファイルを添付できます。 user.rb class User < ApplicationRecord has_one_attached :avatar #ファイル名はなんでも大丈夫です end 次にストロングパラメーターで保存の許可をします。 application_controller.rb class ApplicationController < ActionController::Base before_action :configure_permitted_parameters, if: :devise_controller? private def configure_permitted_parameters devise_parameter_sanitizer.permit(:sign_up, keys: [:nickname, :company_name, :profession_id, :avatar]) end end 新規登録フォームに記述します。 new.html.erb <div class="form-group"> <label>プロフィール写真</label> <%= f.file_field :avatar, class:"input-default" %> </div> このような形でファイルを開く事ができます。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【Rails】リアルタイムチャット機能実装(Action Cable)2/3

目的 Railsで作成したアプリに、Action Cableを用いてリアルタイムチャット機能を導入する。 開発環境 macOS: Big Sur Rubyバージョン: 2.6.5 Railsバージョン: 6.0.0 前提 アプリの下準備としてチャット機能実装が実装されている。 【Rails】リアルタイムチャット機能実装(Action Cable)1/3 手順 はじめに channelの作成 message_channel.rbの編集 コントローラーの編集 message_channel.jsの編集 はじめに 前回に引き続き、Action Cableを用いての実装を行っていきます。 そもそもAction Cableとは、Railsのアプリと同じ記述で、即時更新機能を実装できるフレームワークのことを指します。 実装内容としては、メッセージの保存や送信に必要なRubyのコーディングと、保存したメッセージを即時に表示させるJavaScriptのコーディングです。 また、即時更新機能を実現するサーバー側の仕組みとして、channelがあります。 channelはメッセージを即座に表示させるために、データの経路を設定したり、送られてきたデータを表示させるJavaScriptを記述したりします。 channelの作成 それでは早速始めていきます! まず、下記コマンドを実行しチャネルに関するファイルを作成します。 ターミナル % rails g channel message 生成された、app/channels/message_channel.rbとapp/javascript/channels/message_channel.jsが重要なファイルとなっています。 message_channel.rbは、クライアントとサーバーを結びつけるためのファイルで、 message_channel.jsが、サーバーから送られてきたデータをクライアントの画面に描画するためのファイルです。 message_channel.rbの編集 次はmessage_channel.rbの編集を行っていきます! このファイルは、MVCでいうところのルーティングの機能を果たしています。 stream_fromメソッドを用いることで、サーバーとクライアントの関連付けを設定します。 app/channels/message_channel.rb class MessageChannel < ApplicationCable::Channel def subscribed stream_from "message_channel" end def unsubscribed # Any cleanup needed when channel is unsubscribed end end これでサーバーとクライアントを関連付けるための設定ができました! stream_fromメソッドで関連付けられるデータの経路のことをbroadcastと呼び、broadcastを介してサーバーから送られるデータをクライアントに送信します。 コントローラーの編集 次にメッセージの保存が成功したときに、broadcastを介してメッセージが送信されるように記述します。 app/controller/messages_controller.rb class MessagesController < ApplicationController def new @messages = Message.all @message = Message.new end def create @message = Message.new(text: params[:message][:text]) if @message.save ActionCable.server.broadcast 'message_channel', content: @message end end end ActionCable.server.broadcast 'message_channel', content: @messageは、broadcastを通して、message_channelに向けて@messageを送信するという意味です。 message_channel.jsの編集 上記で送信され、message_channel.jsが受け取った情報は、receivedの引数dataに入ります。 このデータをテンプレートリテラルにして、new.html.erbに挿入します。 app/javascript/channels/message_channel.js import consumer from "./consumer" consumer.subscriptions.create("MessageChannel", { connected() { // Called when the subscription is ready for use on the server }, disconnected() { // Called when the subscription has been terminated by the server }, received(data) { const html = `<p>${data.content.text}</p>`; const messages = document.getElementById('messages'); const newMessage = document.getElementById('message_text'); messages.insertAdjacentHTML('afterbegin', html); newMessage.value=''; } }); {data.content.text}このcontentはコントローラーのcreateアクション内で指定したcontentからきています。 ここまで実装出来たら、実際にメッセージを送信して確かめてみます! 最後に 以上で、Action Cableを用いての実装は完了です。 次回は本番環境で実装するための設定を行っていきます. では。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【未経験】プログラミング歴4ヶ月でデプロイしたApp

初めに はじめまして、今回初めてQiitaに投稿します、るんるんです。 普段は都内の大学に通う学生ですが、今年の冬にプログラミングの勉強を開始しました。 何かオリジナルのWebアプリケーションを作成したいと思っていた矢先、友人から「就活に必要な自己分析がなかなか始められない」との相談をキッカケに自己分析をサポートするfreamwork.appを開発しました。 採用言語・採用理由 フロントエンド HTML,CSS(Sass),jQuery →フロントエンドは流行りのVueやReactなどを採用したかったが、技術不足であり今回は断念。 バックエンドRuby →デプロイまで最短ルートで進みたかったことから、便利で使いやすいフレームワークRuby on Railsを採用した。 <主なgem> ・chartkick(グラフ作成のため) インフラデプロイ先 →Herokuを採用。画像に対して不安を抱えるHerokuだが、写真に関する機能は特にないので良しとした。何よりコスパ最強。 制作期間 1ヶ月(chartkickの実装に時間がかかった) サイトの概要 自己分析をする上で必須級な「フレームワーク」に着目した。 フレームワークを使用する上で陥りがちなのが「自己分析をしても果たしてちゃんとできているかわからない」ことが挙げられる。 そこで、ヒント機能を設けユーザーが方向性を見失わないように工夫した。 またシンプルで直感的な機能性とデザイン性と機能性を意識して、ユーザーの自己分析を始める際のハードルを低くした。 こだわった点 ・モチベーショングラフをユーザーに合わせてグラフを作るために、パス機能を持たせた。 →chartkick(グラフを作るgem)については全くの初見であったが、とにかく調べまくって実装できた。 ・ヒント機能を設けた →自己分析をやる際にユーザーがベクトルを見失う可能性を危惧したため、そのフレームワークに対するヒント機能を用意した。 作ってみた感想 開発を始める当初は2ヶ月ぐらいかかる予定であったが、早めに終わった。 デザインのセンスが皆無なので、なんとか努力で向上していきたい。 フロントエンドにjQueryを採用したが、Reactなどのモダンな技術を用いた方が良かった。 これからの指針 次に開発するものは未定ですが、人気度に高いPythonなどを使用したものを作りたい。 また先述の通りReactを用いたフロントエンドにも挑戦したい。 Dockerを用いた仮想環境で開発をしていきたい。 拙い文章でしたが最後まで読んでくださり、ありがとうございました。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

ERROR: Couldn't connect to Docker daemon at http+docker://localhost - is it running? If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.

sudo docker-compose run web rails new . --force --no-deps --database=postgresql --skip-bundle コンテナを作成しようとしたところ、以下のエラーが発生しました。 ERROR: Couldn't connect to Docker daemon at http+docker://localhost - is it running? If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable. 原因 結論から申し上げますと、今回の場合はdockerのサービスを開始していなかったのが原因でした。 解決策 sudo systemctl start docker を行ない、docker サービスを起動させ、再度 sudo docker-compose run web rails new . --force --no-deps --database=postgresql --skip-bundle を実行したら解決しました。 補足 権限によっても同様のエラーが出る場合もあるようです。 その場合はDockerとdocker-composeにそれぞれ権限を付与する必要があります。 sudo usermod -aG docker $USER sudo chmod +x /usr/local/bin/docker-compose 実行後、設定を反映させるために一度ログアウトする必要があるようです。 Exit 参考 参考にさせていただきました。ありがとうございます。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

[Ruby on Rails] jscrollを使って無限スクロール

完成GIF動画 1.gem導入 ターミナル gem 'kaminari' gem 'jquery-rails' $ bundle install 2.jscrollのHPを確認 jscroll公式サイトが以下になります。 https://jscroll.com/#/ デバックの方法なども書いてあるので、一度確認しておいた方がいいです。 githubからjquery.jscroll.min.jsをダウンロードしてassets/javascripts直下に入れます。 [code]クリック → [Download Zip]クリック 3.jqueryを使用できるようにする app/assets/javascripts/application.js //= require jquery3 //= require jquery.jscroll.min.js 4.controllerの編集する 今回はPost/indexアクション内で無限スクロールさせます。 controllers/posts_controller.rb def index @posts = Post.page(params[:page]).per(12) //一度に12件表示させる end 5.viewsの編集 views/posts/index.html.erb <div class = "jscroll"> <%= render "posts/index", posts: @posts%> <%= paginate @posts %> //kaminari導入で使用可能 </div> 必ずpaginate @postsを、jscroll内に入れること。 6.javascriptsの編集 assets/javascripts/application.js $(document).on('turbolinks:load', function() { $('.jscroll').jscroll({ nextSelector: 'a[rel=next].page-link', //次に表示させたいページのリンク先 contentSelector: '.jscroll' //[jscroll]に追加表示させる }); }); おまけ 「言われた通りにやってるのに、なぜできないんだ!」なんて時にデバック出来たらいいですよね。 ちゃんと、jscrollにもデバック機能がついています。 When set to true, outputs useful information to the console display if the console object exists. nextSelector: hoge, contentSelector: hoge, debug: true debugをtrueとすることで、検証ツールにwarningなどを表示させてくれます。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【Rails】devise_token_authのUnpermitted parameter: :registrationの対処法

症状 devise_token_authを適用したユーザーの登録やアップデートをしようとしたとき、下記エラーが発生しました。 翻訳すると「許可されていないパラメータ::登録」でした。registorationが登録されていないようです。 エラーv Unpermitted parameter: :registration 該当のRegistorationファイルです。 RegistrationsController.rb class Api::V1::Auth::RegistrationsController < DeviseTokenAuth::RegistrationsController private def sign_up_params params.permit(:name,:email, :img, :password, :password_confirmation,:address) end def account_update_params params.permit(:name, :registration, :email, :img) end emd 解決方法 Registorationでrequire(:registration)を入れると、エラーが解消しました。 RegistrationsController.rb class Api::V1::Auth::RegistrationsController < DeviseTokenAuth::RegistrationsController private #ユーザー登録時に使用 def sign_up_params params.require(:registration).permit(:name,:email, :img, :password, :password_confirmation,:address) end #ユーザー更新時に使用 def account_update_params params.require(:registration).permit(:name, :registration, :email, :img) end emd 参考
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む