Rails関連のことを調べてみた2020年04月14日

Rails関連のことを調べてみた2020年04月14日

RailsアプリにCircleCI2.1でCI/CDを導入する設定ファイル【初心者向け】

こんにちは、[ペーパーエンジニアのよしこ](https://twitter.com/K2_Yoshiko)です。

自作RailsアプリにCircleCIを使ってCI/CDを導入してから数週間が経過して、導入当初と比較して動作が安定しました。

私の場合、[CircleCI公式ドキュメント](https://circleci.com/docs/ja/2.0/)を基本として自分の環境を構築しましたが、
当時はCircleCI version: 2.1の新機能※ に対応した他環境の設定ファイルを参考にしたいと思ってました。

> ※ CicleCI vertsion: 2.1の新機能
> orbs / commands / executors

> 機能の説明は次の連載記事が分かりやすかったです。
> [「エンジニアのためのCI/CD再入門」連載一覧](https://codezine.jp/article/corner/754)

そこで今回、CI/CDを導入したい初心者エンジニア向けに、CircleCI2.1に対応した設定ファイルを公開したいと思います。

# 環境

“`
R

元記事を表示

RESTとRESTfulについてまとめてみた

## はじめに

Railsの技術書終盤に差し迫っているのですが、ついにラスボスと出会いました。
そのラスボスとは、、、

>『RESTfulなインターフェイス』とはRESTの特徴を備えたルートの事を指す。

という一文。
頭の中ハテナだらけになり、コテンパンにされました、、、??

なので、今回は〜
『RESTfulなインターフェイス』と『REST』の理解できるようになりラスボスを倒すのが目的です!??

## RESTを理解するために
この後説明していきますが、RESTはWebサービスの**設計概念**のため、具体的にこう!というよりかは、抽象度高く理解しておいた方が、他の言語などでも適用しやすくなるので良いみたいです??

なので、自分の中でしっかり落とし込むより、ほわ〜っと理解できればオッケ〜?‍♀️?‍♂️

## RESTとは?

まずはRESTから倒していきます?

**RESTは「リソース」を扱うための考え方**

**なに(リソース)をどうする(HTTP)を表現するための考え方**

※リソースはWebページや記事などの情報のことを指します。

⇩イメージ

元記事を表示

#Rails ( ActiveRecord ) で alias / alias_method がエラーを起こすので alias_attribute を使う

# Class

“`rb
class User < ApplicationRecord alias_attributes :some_name, :name end ``` # run example ```rb User.last.name # Alice User.last.alias_name # Alice ``` # Error case ( alias / alias method ) ```rb alias foo_alias_name name # NameError: undefined method `name' for class `User (call 'User.connection' to establish a connection)' alias_method :bar_alias_name, :name # NameError: undefined method `name' for class `User (call 'User.connection' to establish a connection)' `

元記事を表示

【Rails】date_selectを使ってみた

#学習メモです
タスクに期限を設定したくてカレンダーだと面倒なので日付選択が簡単なdate_selectを使ってみた。
#型
html.slim

“`
= f.date_select(:カラム名,
use_month_numbers: true,
start_year: Date型で最初の日付,
end_year: Date型で終了の日付(interger型なので+5などでつければOK),
default: 何も入力しなかった場合の値,
date_separator: ‘区切りかた’)
“`
#実際に書いたコード
“`
= f.date_select(:start_at,
use_month_numbers: true,
star

元記事を表示

railsのversion確認でエラーが出た時

“`$gem install rails -v 5.2.3
“`
でinstallして

“`$rails -v
“`
でversion確認すると

“`
Rails is not currently installed on this system. To get the latest version, simply type:

$ sudo gem install rails
You can then rerun your “rails” command.
“`

んんんん、さっきインストールしたよな?
ま、この通りやってみるか

“`$sudo gem install rails
“`
実行

また同じエラーが出ました

#色々試してみました

https://qiita.com/arashida/items/ae982df5e534fd4bc97a

上を参考にさせてもらって試してみました

けど全く同じエラー

##そうだ、passを確認

元記事を表示

LINE BOTで位置情報を使って天気予報を取得する

railsで位置情報で天気予報を取得できるBOTを作成したので、APIの搭載の仕方をご紹介します。今回はXML形式で取得した場合です。

LINEBOTの作り方はこちらを参照いたしました。
https://qiita.com/takashico/items/edb6050a8e54dd137148

apiはこちらから取得いたしました。
https://openweathermap.org/

apiの搭載はこちらの記事を参考にいたしました。
https://yoheikoga.github.io/2016/08/14/weather-in-the-area-now-on-by-gps-module/

## ライブラリーを記載
controller.rb

“`
require ‘line/bot’
require ‘open-uri’
require ‘kconv’
require ‘rexml/document’
“`

## XMLファイルから

元記事を表示

画像有り投稿を検索する(画像有フィルター)

#実装したいこと
画像が投稿されている投稿に絞って一覧表示できるようにします。(imageカラムの中身が存在するレコード一覧を取ってくる)

#indexページ
indexページの適当な場所に以下を追記します。

“`tweets/index.html.erb
<%= form_tag({controller:"tweets",action:"index"}, method: :get) do %>
画像有りフィルター<%= radio_button_tag("image", "image") %>
<%= submit_tag '?' %>
<% end %>
“`

これは以下のようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614347/d7d267c3-d629-f7cb-2125-2755cf839015.png)

ラジオボタンをクリックして、送信すると、tweetsコントローラーのindexアクションに「image」というパラメーターが

元記事を表示

kaminariをカスタマイズ

ページネーションはkaminariというgemを用いることが多いかと思います。

参考
https://qiita.com/residenti/items/1ae1e5ceb59c0729c0b9

機能面は実装済みという前提で話します。

kaminariを実装すると初めは以下のように見にくいデザインになっているかと思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614347/9fcae48c-169f-a978-68d7-9bbf70a53c9e.png)

例えば、これを以下のように変えましょう!
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614347/c3429f12-f52b-e6e0-c57f-08001f19344d.png)

上記リンクのように、bootstrapを適用するという方法もありますが、リンクホバーなど自分でカスタマイズしたいですよね。

#k

元記事を表示

返信機能実装時、工夫した点 -newアクション-

投稿に対する返信機能を作成する際に、newアクションの実装を少し工夫することで便利にすることができました。

#●実装コード
Q&Aサイトを実装しているため、投稿=Question 返信=Answerとなっています。

“`ruby:app/contorollers/answers_controlelr.rb
def new
@question = Question.find(params[:id])
@answer = @question.answers.build
end
“`
“`ruby:config/routes.rb
get “/answers/:id”, to: “answers#new”, as: :new_answer
resources :answers, except: %i(new)
“`

#●解説
###1.アソシエーションでquestionを取得することができる。
“`ruby:app/contorollers/answers_controlelr.rb
def new
@question = Que

元記事を表示

[Rails] 投稿した内容が表示されない時の問題点の洗い出し方

初めまして!駆け出しエンジニア真っ只中のゆーとです 🙂

今回はエラーが出てないにもかかわらず投稿した内容が表示されない時の洗い出し方の一例について、 アウトプットも兼ねて説明したいと思います!

なにぶん絶賛初学者なので、お手柔らかにご指摘して頂くと幸いです?‍♂️

##データベースをチェックしましょう

これで、データがデータベースに**保存される過程で問題が発生している**のか、データを**取り出して表示する過程で問題が発生してるのか**をある程度搾り込むことができます。

####データベースに投稿データが保存されてない場合

params(入力された情報を持ってる箱)にしっかり情報が入っているか確認をします。

[確認の手順]
binding.pryを入力データが送られるはずのアクションにかける
    ↓
試しに何か投稿してみる
    ↓
コマンドラインで、paramsコマンドをうつ&paramsの投稿内容が入ってるか見る
 
これでparamsに情報が入ってない場合はデータが正しく送られず、**情報がデータベースに行く過程で何か問題が発生している**こと

元記事を表示

[rails,active_storage]紐づいた画像のidの呼び出し方

#方法

今回は自分用ですが、皆さんのお役にも立つかと思ったため記述させてただきます

“`ruby:app/models/item.rb
〜前略〜
has_many_attached :images
〜後略〜
“`

“`ruby:appcontrollers/items_controller
〜前略〜
def edit
@item = Item.find(params[:id])
end
〜後略〜
“`

上記の条件でactive_storageを紐づけている場合、下記の記述でimagesのidを表示できます

“`ruby:app/views/item/edit

= @item.images_blob_ids

“`

#おまけ

条件が同じの場合,全ての画像を表示する方法は下記の通りとなります。

“`ruby:app/views/item/edit
-@item.images.each do |image|
=image_tag image
end
“`

元記事を表示

[JavaScript]デジタル時計つくる desktop用

テクニカルテスト受けるまで基礎学中心!
個人アプリにはガッリ手を出せない。
でも、何かしら実装したい。。。
と思いプチアプリ作成をすることにしました。
(今回はデスクトップで見るようなので、webページに入れ込んだりできません。
ご了承くださいませ)

## 環境
Mac 10.14.6
Ruby 2.5.1p57
iTerm2 Build 3.3.7

## 制作時間
約3〜4時間(qiita書きつつ調べて画像集めつつなので思ったよりも時間がかかりました。
素材揃っていればもっと早く終わると思います)

## 作成手順
1から全部記述します。1~5は新規アプリ作成部分も含まれている
ので、不要な方は飛ばしてください。

### 1,任意のディレクトリにいどう(不要な場合はcdのみで○)
### 2,新規アプリ作成

“`ruby:ターミナル
$ rails new jsClock-simple -d mysql
“`

### 3, `cd jsClock-simple`で今作成したディレクトリへ移動
### 4,Gitの管理下に置く

“`ruby:ターミナル
$git in

元記事を表示

【Rails】サイトのタブに使うオリジナルアイコンの作り方〜設定まで(favicon)

#経緯
ポートフォリオで作成しているWEBアプリケーションにオリジナルのアイコンをつけたいと思い、方法を模索していました。

#アイコンの用意
私はアイコン兼、サイトロゴを用意しました。
こちらのフリーロゴ作成サイトで作りました。
https://www.squarespace.com/

こんなのが出来上がります。
![ReLearn-logo-orange.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/574173/8b566f14-0c74-a4a9-10c5-543b7652372b.png)
こちらは私のポートフォリオで使ったロゴです。

かなり大きく写ってますがロゴとして使う際は
cssでwidthを指定してあげればうまく使えると思います。

# faviconの作成
先程作成したロゴを使って、
こちらのフリーソフトを使用します。
http://www.xiconeditor.com/

手順はサイト内の右側にある数字順に行っていきます。
![スクリーンショット 2020-04-13 22.

元記事を表示

bundle installでエラーが出たとき

”’gem install bundler -v ‘2.0.2’“`

元記事を表示

Kaminariで、controllerでメソッドチェインできない時

## Kaminariで、メソッドチェインができない…

Kaminariを使って無限スクロールを実装していたところ、

“`controller.rb
def index
# コイツは普通に取得できるけど
@posts = current_user.posts.where(created_at: Date.today).page(params[:page]).per(8)

# sort_by, sort_by!, reverse!でつなげた時はエラーになる
@posts = current_user.posts.where(created_at: Date.today).sort_by {|f| f[:updated_at]}.reverse!.page(params[:page]).per(8)
end
“`
##解決策

上は、メソッドチェインで取得したのはインスタンスオブジェクトなのに対し、
下は、sortメソッドなどは、`Enumerable#sort`というRuby標準のメソッドで配列を返す。

###そもそも

元記事を表示

初めてのwebサービスとして、コロナウイルス感染症の支援情報検索サイトを作ってみた。

https://covid19supportinfo.herokuapp.com/
おそらく現在もっとも多くのデータから検索できるサイトだと思います。

#動機

支援の情報が行き渡っていないという声を何度か目にして、今無職だし人の役に立つことでもするかと思い開発しました。
検索してみたところすでに検索サイトがいくつか存在したが、不満点が複数あった。
Moneyforwordのは、自治体ごとのがメインで全国的に使えるものが少ない。(これがなぜなのかわからない。どこが情報元なのだろうか。)
個人向けの検索をできるサイトがない。
など不足している部分があったため制作を決めた。

#自己紹介

今年の1月からRailsの勉強をはじめたばかり。熊本在住。

#情報元
https://www.meti.go.jp/press/2019/03/20200323009/20200323009.html

#開発期間

2020-04-10~2020-04-13

#困ったこと

元データがめちゃくちゃで、どれが個人向けでどれが事業向けなのかを判別するのに苦労し、URLも別の場所に記述されていたりと混

元記事を表示

GCPのAppEngineでRedmineを起動したときのメモ

## はじめに
職場でRedmine使って色々管理している流れで、ちょっと自宅でお試し環境を作りたくなり、ついでにGCPのAppEngineも試したかったので、AppEngine上でRedmineを実行してみた際の手順をまとめてみました。

## 参考
* [GCPのRailsチュートリアル](https://cloud.google.com/ruby/rails/appengine)
* [GCPのCloud SQLマニュアル(AppEngineからの接続方法について)](https://cloud.google.com/sql/docs/postgres/connect-app-engine)

## 環境
* ローカルにgcloudコマンドラインツールを入れるのが面倒だったので、GCPのコンソールから支えるCloudshellから操作を行いました。
* データベースにはCloud SQLを使って構築したPostgreSQL11を使っています。
* mysqlを使わなかった理由: Cloud Shell環境でgem install mysql2が失敗したから。(mysql-de

元記事を表示

Railsでbootstrapが効かない、destroyが効かない

Ruby on Rails初心者です。

Ruby on Railsでログイン機能付きの本の感想を登録できるアプリケーションを作成しています。

ログインしているユーザーが投稿した本の内容を削除できるようにdestroyメソッドを実装したのですが、エラーが出ないのに削除できないという現象に陥ってしまい、詰まってしまったのでここにメモしておきます。

今回の不具合として、
・destroyアクションが効かない、destroyボタンを押すとshowページにいってしまう
・bootstrap,CSSが効かない
という2点がありました。

まずコントローラーですが、

“`books_controller.rb
def destroy
@book = Book.find(params[:id])
respond_to do |format|
if @book.destroy
format.html{redirect_to books_path, notice: “Book was successfully destroyed.”}

元記事を表示

コロナウイルスに伴う現金給付対象者かんたん測定ツールを作った話

#はじめに
**「30万円の現金給付の対象者ややこしすぎん?」**
ネットニュースを見ててそう思い、今回アプリケーションを作ることにしました!!
技術的な話ではないですが、リモートワークの息抜き程度に読んでみてください:raised_hand::raised_hand:

**「コロナウイルスに伴う現金給付対象者かんたん測定ツール」**
https://coronavirus-cash.herokuapp.com/

#アプリケーション概要
スクリーンショット 2020-04-12 22.06.19.png
スクリーンショット 2020-04-12 22.06.48.pngformボタンを押しても動かない際の対処法【原因はturbolinks】

こちらの記事の通りでした。
https://qiita.com/d0ne1s/items/5a4122d2972be3812986

備忘録としてtturbolinksの無効化方法を自分用にメモします。

環境
Rails6.2.0

###Gemを削除し、bundleupdateする

“`
#gem ‘turbolinks’, ‘~> 5′
“`

“`
$ bundle update
“`

###application.jsを編集する

“`app/assets/javascripts/application.js
//= require turbolinks #この行を削除
“`

###2箇所の’data-turbolinks-track’: ‘reload’の部分を削除する

“`app/views/layouts/application.html.erb
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>

<%= jav

元記事を表示

OTHERカテゴリの最新記事