Rails関連のことを調べてみた2021年08月21日

Rails関連のことを調べてみた2021年08月21日
目次

ActiveRecord::ConnectionNotEstablishedの解決方法

下記のようなエラー文が出たので、一つづつ紐解いて対処していく。

“`
ActiveRecord::ConnectionNotEstablished (could not connect to server: No such file or directory

Is the server running locally and accepting

connections on Unix domain socket “/tmp/.s.PGSQL.5432”?
“`

> ActiveRecord::ConnectionNotEstablished

dbとの接続がうまくいっていないという意味らしい。

> Is the server running locally

local環境でサーバーは動いているか

> and accepting connections on Unix domain socket “/tmp/.s.PGSQL.5432”?

もしくはUnixドメインソケットの.s.PGSQL.5432に繋がっているか?

## **環境**

– macOS Big S

元記事を表示

Ubuntu14.04にffmpegインストールするには

railsで動画変換の機能を作った時に必要でした。
macのローカル環境では`brew install ffmpeg`をしたらインストールできましたが、Ubuntu14.04ではこのような記述が必要です。

“`
sudo apt-get -y install software-properties-common
sudo add-apt-repository ppa:mc3man/trusty-media
sudo apt-get update
sudo apt-get -y install ffmpeg
“`

元記事を表示

[Rails]searchアクションの定義方法について

# はじめに
本記事では、7つのアクション以外である
`searchアクション`について記述します。

本日オリジナルアプリで実装したためアウトプットいたします。

# 結論
いきなりですが、コードを載せます。
私のオリジナルアプリは食べ物に関係したものです。

foodsをsearchするという理解でお願いします。

記述の順番としては、
ルーティング→モデル→コントローラーが良いのかなと思っています。

“`routes.rb
Rails.application.routes.draw do

devise_for :users
root to: ‘foods#index’
resources :foods do
collection do #ここから下3行です!!
get :search
end
end
resources :users, only: :show

end
“`

“`food.rb
class Food < ApplicationRecord belongs_to :user has_one_a

元記事を表示

#7 Rails × Vue.jsで動的なページをSPA化させる

[前回の続き](https://qiita.com/divclass123/items/9cf3fe9415d564ce2253)

前回、railsのviewからjson形式でデータをvue.jsの方に送るといった新技を身につけたので、
それを利用して、drinks/show.html.erbにおける現在のuserのidと投稿のidを
取得できたのでそれらを利用していいね機能を実装していきたい。

# vue.jsを記述

likeButton.vueを記述していきます!

async function()という見慣れないものがあったので調べると、
非同期関数と呼ばれるもの。そもそもjs自体なんか非同期っぽい感じするので訳わからないのですが、
https://knowledge.sakura.ad.jp/24888/
複数の処理を実行できる的な感じですかね。。。
https://qiita.com/kiyodori/items/da434d169755cbb20447

>例えばサーバーと通信を行った際に、リクエストが返ってくるまでに数秒以上もかかると困ります。そこで、「ある関数が呼

元記事を表示

Ruby , Ruby on Rails学習 一日目(条件分岐と繰り返し表現)

お疲れさまです!takumiです!
一日目なのは変わりませんが引き続きRubyの勉強頑張っていきましょう!!!

#IF文

〇〇の場合は□□するという条件分岐。

基本の型

“`Ruby
if 条件 then
#条件
end
“`

具体例をみてみます。
基本的にはBoolean値(true or false)を判定して出力するか、しないかを判定しています。

“`Ruby
score = 78

if score < 90 then puts "#{score}は90より小さい" end if score <= 78 then puts "#{score}は78以下です" end if score >= 78 then
puts “#{score}は78以上です”
end

if score == 78 then
puts “#{score}はぴったりです”
end

if score != 77 then
puts “#{score}は77ではない”
end
“`

また、文字を入力したらそれだけでtrue判定することも覚えておくといいかも。

元記事を表示

インクリメンタルサーチ rails ajax

インクリメンタルサーチを実装する!

インクリメンタルサーチとは・・逐次検索です!

完成イメージ

あるワード「コロナ」を入れると、、そのワードがタイトル、コンテンツ内に含まれてる記事が出てきます。
さらに、「コロナ」から「コロナウイルス」にうち進めると…
さらに絞り込まれていきます。
ちなみに下に出てくる記事のタイトルは、リンクにしてるので
押したらそのまま、記事に飛べます。

これが、ベストなインクリメンタルサーチではないですが・・・
頑張って実装したのでまとめていきます:fist:

![スクリーンショット 2021-08-20 20.49.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1633266/a6f5040a-bc90-691b-a797-488f0f4a7e47.png)
![スクリーンショット 2021-08-20 20.49.58.png](https://qiita-image-store.s3.ap-northeast-1.amaz

元記事を表示

本番環境でCSSだけが反映されていない

##はじめに
DockerとCircleCIを用いた本番環境で、修正を加えてデプロイすると、CSSだけが反映されていないことに気づきました。

CSS全く機能していないのではなく、修正した箇所が反映されていないという事象です。
完全な解決ではないですが、とりあえず反映させることはできましたので残しておきます。

##解決策

まず疑ったのは、キャッシュが残っているのではないかと思いました。
スーパーリロードとシークレットウィンドウで本番環境を試しましたが、効果なし。

また、HTMLの変更点は反映されているため、コンパイルが怪しいと思いました。
(dockerとcircleciを導入する際にかなりてこずったところでもあったので、特に怪しいと感じました。)

取り急ぎ解決策としては

ターミナルからデプロイしているEC2へ行き、自分のアプリに移動して一度precompileしたものをを削除します。

“`terminal
$ docker-compose run web bundle exec rails assets:clobber RAILS_ENV=production
“`

元記事を表示

Ruby , Ruby on Rails学習 一日目(変数とメソッド)

#webアプリケーション開発、頑張るやで。

今日からデイトラで学んだことをどんどんアウトプットしていこうと思います。

フロントエンドエンジニアを目指していたのですが、正直バックエンドの知識も
ないとぶっちゃけ頭がこんがらがってわからなくなるときがあります。。。。
なので学んだことをどんどんQiitaにアップロードしていこうと思います!

#Rubyってなんぞや

今まで学習してきたHTML,CSS,JavaScriptと違ってRubyはサーバーサイド言語と
呼ばれるもの。
機能としては
・ロジックをつくるんだよー
・データを保存したり取り出したりできるんだよー

そしてこの言語は日本人よって作られたらしい。地味にすごすぎワロタ。
そしてこのRubyとRuby on Railsというものを使うと爆速でWebアプリケーションが作れるみたい。
フロントでいうところのVue.jsとかReactみたいなもんなんかね。

この便利なRailsですが、実務ベースで使用していくには生のRubyをちゃんと知らないと
だめだよということなのでしっかり基礎学習していこうと思います!!

#文字の表示

元記事を表示

AWS構成図を作成し、サーバー周りについて初心者なりにまとめてみました・・・。

AWS構成図

今回AWS構成図というものを作ってみました。
ポートフォリオをデプロイしてみたものの、正直何をやってるのか・・・・
「私は今一体何を立ち上げているのか・・・」状態だったので、
基本を勉強しつつ、以下の表が何なのかわかるように、
まとめていきたいと思います。
サーバー周りはとても難しく感じます。:fearful:

![スクリーンショット 2021-08-20 17.05.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1633266/0ef6c701-e78f-0dce-3d60-eb9aa5bd5adc.png)

まずは基礎知識の確認 

サーバーについて

:fist:サーバーって何?

サービスを提供するコンピュータのこと

:fist:WEBアプリケーションで必要になるサーバーは?

WEBサーバー、APサーバー、DBサーバー

:fist:WEBサーバーって何?

WEBクライアントのリクエストを受け取り、静的コン

元記事を表示

Rails アソシエーション作成時のFK自動付与について

model作成を行い、アソシエーションで関連付けを行うと、自動的にFK(外部キー)が付与される。
この規則について考える

User モデルとPostモデルを作成しUserモデルとPostモデルは一対多の関係にあるとする

(userモデルに対するpostモデルのFKはuser_id)
(postモデルに対するuserモデルのFKはuserモデルのPK(主キー))

![Screenshot from 2021-08-20 18-44-29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/512448/22587b3e-5986-f7f2-de80-4c31683870cf.png)

画像汚くてすみません。

以下 コード例

“`user.rb
has_many :posts
“`

“`post.rb
belongs_to :user
“`

postモデルのbelongs_to :user から考えると、belongs_to でpostの1レコードに対し必ずuserモデルの主キーは存在

元記事を表示

mimemagicのインストール エラーと格闘した軌跡

# mimemagicをインストールしたい
ここ5時間くらいmimemagicのインストールに悩まされています。(泣)
未来の自分に向けて解決策を備忘録として残しておきたいと思います。

mimemagic との戦い

一通りgemgileやらなんやらを用意して、いざ以下のコードを書いたところ、

“`
subaru$ docker-compose run web rails new . –force –database=mysql
“`

全てはこのエラー文から始まった。

“`
An error occurred while installing mimemagic (0.3.10), and Bundler cannot continue.
Make sure that `gem install mimemagic -v ‘0.3.10’ –source ‘https://rubygems.org/’` succeeds before
bundling.
“`
gem meme
https://qiita.com/friendtree16/item

元記事を表示

railsで簡単にCRUD処理ができるようになる(コントローラー編)

## railsで簡単にCRUD処理ができるようになる(コントローラー編)

このhogeもしくはhogesを任意の名前(taskでもboardでもなんでもいい)に変えるだけで、CRUD処理実装におけるコントローラーがマルっと解決する。

hogeもしくはhogesは、userと一対多(user:hoge = 1 : N )の関係にあるものとする。

“`jsx
class HogesController < ApplicationController before_action :set_hoge, only: %i[edit update destroy index show] def index //全件表示 @hoges = Hoge.all end def show //投稿されたものの詳細を表示 @hoge = Hoge.find(params[:id]) end def new //新しくインスタンス(投稿する記事など)を作成 @hoge = Hoge.new end def cre

元記事を表示

[Rails]rack-corsの導入でCORS設定

# rack-colsとは
RackアプリケーションにCORSの制御機能を追加するRackミドルウェアのことです。
CORSを使うことで、Webアプリケーションは特になんの回避策も無しでクロスドメインのAJAXの呼び出しを行うことができます。

# 使い方
## インストール方法
Gemfileに以下を記載して、`bundle install`するだけです。

“`ruby
gem ‘rack-cors’
“`

## Railsの設定
`config/initializers/cors.rb`に設定を行う。

– origins
– スキーム(http)、ドメイン(example.com)、ポート(8080)を組み合わせたもの。簡単に言うとURLのこと。
– `*`とすることで、すべてのoriginsを許可する。
– resource
– 許可するリソースファイルのこと。
– `*`とすることで、すべてのリソースファイルを許可する。
– headers
– 許可するHTTPヘッダーのこと。
– `any`とすることですべて許可する

元記事を表示

Rails + heroku + CloudinaryでのURLからの画像保存方法

##前提条件
rubyとrailsのバージョンは以下の通り。
ruby:2.6.3p62
rails:6.1.3.2

##herokuにcloudinaryを追加
herokuのweb画面からcloudinaryを追加する
![スクリーンショット 2021-08-20 12.08.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/717720/efc44888-1a1a-d137-08f2-85fca6aaf752.png)

料金プランは無料プランにしている
![スクリーンショット 2021-08-20 12.10.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/717720/a64f4f30-0638-d7d6-9dc7-55e06825c93f.png)

##cloudinary.ymlの追加
cloudinaryの画面でYMLリンクをクリックしてymlをダウンロードする。(YMLリンク小さすぎ)
ここに

元記事を表示

[Ruby on rails] RuboCop(リーダブルコード)②Rubocop-airbnbを導入してみた

初めに

以前の記事でrubocopを導入しましたが、
rubocop-airbnbの方が使い勝手が良かったので、そちらに変更しました。
圧倒的に設定やら何やらはこっちの方が楽です!!!

https://qiita.com/ki_87/items/1ee43808784652cd1608

Gemfile導入

前入れたrubocopとはおさらばです。

“`Gemfile
gem ‘rubocop-airbnb’

“`

bundle install します。

ファイルの作成

.rubocop.ymlと.rubocop_airbnb.ymlを作成します。
Gemfileがあるところと同じところです。

![スクリーンショット 2021-08-20 13.47.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1633266/efaf19ed-17e8-97f1-7034-0dac9a9ef692.png)

ファイルに記述

元記事を表示

form_withでのformで枠線を消したい時

##form_withでのformで枠線を消す
・どうやるか
結論:border:noneとoutline:noneをcssにつけるだけ。
セレクター名はinput[type=”text”]のようにする。”text”の部分をemailとかpasswordとかに変更することでemail_fieldでpassword_fieldにも適応することが可能です!
初期値にうんざりしている人ぜひお試しください!!

元記事を表示

【エラー解決】Terminalをよく確認することを学んだときの話

#結論

* ストロングパラメーターに新しく追加したカラムを設定してなかった

#このエラーから学んだこと

* エラーが出なかった場合はTerminalをよく確認すること

#解決前の状況

###前提

読んだ本の感想を投稿するアプリを作成していました。

星レビューを実装中にレビュー付きの投稿はできたものの、
Viewに反映されず、アクションで保存がされていなかったのか、
それともView側の原因で反映されていないだけなのかわかりませんでした。

### 発生していた問題

エラーメッセージはなかったが、
Terminalをよく確認したら、下記のような文字を発見

“`
Started POST “/books” for 114.162.142.130 at 2021-07-30 02:58:47 +0000
Cannot render console from 114.162.142.130! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255
Processing by BooksControlle

元記事を表示

[Rails]もっと見るボタンの実装(JavaScriptのみ、jQueryなし)

### 完成イメージ

![スクリーンショット 2021-08-20 10.48.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1912656/43b5fd13-e5f8-81bd-056d-d5da8682701e.png)

合計のレコード数が9件だった場合、

最初は、6件だけ表示。
これを押すと、残りの3件が表示されるという仕組みを作る。

### 前提
マークアップコードはHamlで実装。

// Haml側でのデータの扱い
– @sections = 複数のセクション
– section: アプリケーション内で表示する後述の「contents」を格納するセクション
– contents: 「section」と1対多の関連がある、アプリケーション内で表示する複数のレコード

### JS側

“`haml
:javascript
// もっと見る表示
function SeeMore(contentsId, minimumContentsId, button) {
c

元記事を表示

railsチュートリアル第3章 root_url

###ルーティングの設定
アプリケーションルートのルーティングを設定
rootでホーム画面に指定できるらしい。

“`rb
Rails.application.routes.draw do
root ‘static_pages#home’
# 何の意味がわからん
# ホーム画面がhomeページなるらしい
get ‘static_pages/home’
# static_pagesコントローラからhomeアクションに紐付けされる
# getでアクセルすることでページを取得することができる
get ‘static_pages/help’
# 何を書いているかはわからない
get ‘static_pages/about’
# aboutアクションにGETリクエストを送る
get ‘static_pages/contact’
# rootは流れだったような気がする
# applicationコントローラのhelloアクションを起こす
end
“`
“`
ubuntu:~/environment/sample_app (static-pa

元記事を表示

ActiveStorageを利用した際のseedデータ作成

初投稿です!宜しくお願いします。

#### やりたいこと
ActiveStorageを使って投稿機能を実装している状態でseedデータを準備したい。
ファイルの添付を必須にするバリデーションをかけている場合のデータを作成したい。

#### seedデータの用意

以下のやり方場合は、
ActiveRecord::RecordInvalid: バリデーションに失敗しました: 写真を追加してください
となってしまった。

失敗例

“`db/seeds.rb
10.times do |n|
post = Post.create!(
user_id: “1”,
content: “投稿します!”,
)
post.images.attach(
io: File.open(Rails.root.join(“./app/assets/images/post/test.jpeg”)),
filename: “test.jpeg”
)
end
“`

成功例

“`db/seeds.rb
10.times do |n|
post = Pos

元記事を表示

OTHERカテゴリの最新記事