- 1. Cloud9でRubyの開発環境構築を行う
- 2. 超簡単 Rails タイトルを動的にする
- 3. Rails7でfont-awesomeを表示させる方法
- 4. GraphQL Rubyのvisible?, authorized?について
- 5. RailsのTransactionについてのメモ
- 6. if,else問題(演算子) police_trouble
- 7. 【Rails】【Ruby】decoratorでHTMLのタグを作る【初心者】
- 8. HTMLの基礎知識(YoutudeのURL 投稿と反映)
- 9. 基本的なRailsの文法
- 10. Ruby インスタンスの生成
- 11. splat演算子と [*array] と {**hash}
- 12. HTMLの基礎知識(星評価の平均)
- 13. 退屈なことはRubyにやらせよう ~ファイル整理を自動化する~
- 14. 【Ruby on Rails】ポケモンゲットだぜ!!
- 15. 【Ruby on Rails】Slimでコメントアウトする方法
- 16. Ruby on rails メモ①
- 17. bundle install 時の idn-ruby エラー
- 18. 【Active Storage】ストレージ内にzipファイルを生成してDLする機能作成までにやったこと
- 19. 100日後くらいに個人開発するぞ!day061
- 20. 【Rails】APIモードかつクロスオリジン間でCookieやSessionを使う方法【SPA】
Cloud9でRubyの開発環境構築を行う
## 前提
– AWSアカウントを作成済みであること
– IAMユーザを作成済みであること### はじめに
– 7月に転職しwebエンジニアとしてRuby on Rails環境のシステム開発を行なっています
– 今までRubyはUdemyによる自己学習レベルでしか触れたことがなかったため、基礎中の基礎から勉強始めています
– 今回はその環境構築を行なった際の備忘記事です
– 当記事はqiita登録して5分後に書き始めたものなので、ご指摘あればぜひよろしくお願いします## Cloud9の準備
– AWSの上部検索バーに「cloud9」を入力して「Cloud9」サービスを選択
– 「Create environment」を押下
– この時、リージョンは「アジアパシフィック(東京)」にしています
超簡単 Rails タイトルを動的にする
# 使用環境
– Rails 6~
– Ruby 3.1.0
– M1 Mac
# Rails タイトルを動的にする方法
自分も初学者ですが、誰でもできるよう、分かりやすく書いていきます。# app/helper/appliction_helper.rb
以下のコードをコピー&ペーストして下さい。
コードに関しては、、、調べて下さい?
僕はおまじないだと言い聞かせてます?“`
module ApplicationHelper
BASE_TITLE = “KAKEIBO”.freeze #ここで変えたいタイトルにしてる
↑ここを変えたいタイトルにしてあげるdef full_title(page_title)
page_title.blank? ? BASE_TITLE : “#{page_title} – #{BASE_TITLE}”
end
end
“`# app/views/layouts/appliction.html.erb
タイトルタグを以下のコードに変えてください。
“`
#変更前
te
Rails7でfont-awesomeを表示させる方法
### はじめに
今回の解決策は憶測の結果なので、こういった事例もあったのか程度に見ていただければと思います。
### 解決したい問題
ポートフォリオ用のアプリケーションをRailsで作ってる際起きました。
詳しくはこちらをご覧ください
https://qiita.com/woodman0224/questions/96013b924619b77e1cd8qiita内でも色々な記事を見て解決策を探していたのですが
中々見つからず途方に暮れる事早一日。
いっそのことエラー箇所をコメントアウトしようと思い、
してみたところなんと!表示されました!!!泣### やってみたこと
application.scssが現状このような状態です!
“`scss
//@import “font-awesome-sprockets”;
@import “font-awesome”;
“`
となるとおかしいなと思ったので確かめてみたら
“`scss
// @import “bootstrap-sprockets”;
@import “bootstrap”;
“`
GraphQL Rubyのvisible?, authorized?について
GraphQLでは、MutationやQueryのそれぞれのobject, field単位などで、認可を行います。
これにより、どのようなクエリが発行されても、ユーザーが参照する権限を持っているかを各field, objectなどの単位で確認して、結果を返すことができます。contextでユーザーの情報を持ち、認可を行います。
## ビジネスロジックレイヤーでの認可設定
この記事では、GraphQL RubyのVisibility、Authorizationについて説明しますが、そのようなGraphQLレイヤーでの認可の前に、ビジネスロジックレイヤーでの認可を検討すべきと言われています。
https://graphql.org/learn/thinking-in-graphs/#business-logic-layer
例えば、Modelにロジックを書くことで、すべてのfieldに同じ処理を書く必要がなくなります。
https://graphql-ruby.org/authorization/overview.html#authorization-in-your-busi
RailsのTransactionについてのメモ
## ActiveRecord::Base.transaction
複数のSQLが発行されるときに、すべてのアクションが終わったときにDBを更新する。## 具体的には
以下のようなブロック内に処理を書いていく。“`ruby
ActiveRecord::Base.transaction do
# 処理
end
“`
例えばインスタンスメソッド内で
“`ruby
ActiveRecord::Base.transaction do
users.each do |user|
user.update!
end
self.save!
end
“`
これですべての処理の保存と更新を一括で行うことができる。
if,else問題(演算子) police_trouble
# 問題
以下の要件を満たす police_troubleメソッドを実装しましょう。
あなたは警官です。aとb二人の容疑者の取り調べをしています。このとき、次のルールで証言の真偽判定を行います。
※問題文で登場したaとb二人の容疑者は、今回実装するpolice_troubleメソッドの引数として取り扱っていきます。第一引数aと第二引数bどちらの証言も真(true)であれば、Trueを出力すること
第一引数aと第二引数bどちらの証言も偽(false)であれば、Trueを出力すること
第一引数aと第二引数bで証言の真偽が一致しない場合であれば、Falseを出力すること# 雛形
“`rb
def police_trouble(a, b)
# ここに条件式を記述する
end# 呼び出し例
police_trouble(true, true)
police_trouble(false, false)
police_trouble(true, false)
“`出力例
“`
police_trouble(true, true) → True
police_trou
【Rails】【Ruby】decoratorでHTMLのタグを作る【初心者】
## はじめに
未経験からエンジニアに転職して、4ヶ月ほど経つエンジニアです。
![アイコンバー.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/916052/61a0d3ee-6ff7-f4ca-bb00-622c3c99cfa5.jpeg)今回は decorator で HTMのタグを作る方法を手短に紹介します。
rails の gem ‘draper’ を使用しています。~~~ruby
def user_status_tag
h.tag.span class: “[text-weight-bold”] do
# 描画したい文字や変数、メソッドなど
end
end
~~~↓に使いたいHTMLのタグを続ければOKです。↑ではspanを使っています。
~~~ruby
h.tag.HTMLのタグ名
~~~↓のようにスタイルを当てることもできます。
~~~ruby
class: “[text-weight-bold”]
~~~## 最後に
今回は decorator
HTMLの基礎知識(YoutudeのURL 投稿と反映)
みなさん今日もプログラミングの学習お疲れ様です!!
今回はYoutudeの動画を投稿し、それを詳細ページに反映する機能を実装していきます!!:sunny:
Step1:モデルを作成 “`ruby:ターミナル
rails generate migration AddYoutubeUrlToTweets youtube_url:string
“`“`ruby:ターミナル
rails db:migrate
“`Step2:コントローラーの追加 “`ruby:tweets_controller.rb
private
def register_params
params.require(:register).permit(:youtube_url)
end
“`Step3:newにyoutude_urlのデータを追加 “`ruby:tweets_new/html.erb
<%= @tweet.label :youtube_url %>
<%= @tweet.t
基本的なRailsの文法
## はじめに
ドットインストールにてRailsを勉強しているのですが、知識を記憶に定着させるため、学んだこと、調べたこと、自分で考えたことなどを書いていきます。
何かご指摘があれば教えていただければ幸いです!## 環境
Ruby: 2.6.5p114
Rails: 5.1.7
教材内のバージョンに合わせました。## ログファイルの場所
“`ruby
log/development.log
“`## モデル作成
“`:zsh
rails g model Post title:string body:text
“`Modelは個々のデータ構造を定義するので、Postのように単数形になる。
上記を実行した後、いろいろなファイルが作成され、今作ったデータの構造をデータベースに反映させるには、下記を実行する。
“`:zsh
rails db:migrate
“`## データベースを使う
“`:zsh
rails dbconsole # rails dbと省略できる
.tables # 存在するテーブルを見る
“`## 初期データの流し込み
Ruby インスタンスの生成
クラスとインスタンスの問題を解いてみた。基礎の復習も兼ねて今日もアウトプット。
# 問題
クラスFruitを定義して以下のように出力してください。“`
採れたて新鮮な果実です
リンゴは120円です
オレンジは200円です
イチゴは60円です
“`雛形
“`
class Fruit
def クラスメソッド
# 正しくメソッドを定義した上で、ここに処理を記入してください
enddef initialize
# ここに処理を記入してください
enddef インスタンスメソッド
# 正しくメソッドを定義した上で、ここに処理を記入してください
end
end# 3つのインスタンスを生成してください
# クラスメソッドを呼び出し、「採れたて新鮮な果実です」と表示してください
# インスタンス毎にインスタンスメソッドを呼び出し、「【名前】は【価格】円です」と表示してください
“`# 解答
“`
class Fruit
def self.fresh
puts “採れたて新鮮な果実です”
enddef ini
splat演算子と [*array] と {**hash}
以下の書き方ってOKだっけ? そして結果は何? と思ったので調査。
“`ruby
array = [1, 2, 3]
hash = { x: 4, y: 5, z: 6 }p( [ *array ] )
p( [ *hash ] )
p( [ **array ] )
p( [ **hash ] )
p( { *array } )
p( { *hash } )
p( { **array } )
p( { **hash } )
“`## 前置き:splat演算子
Ruby ではメソッドの仮引数に、可変長引数 `*rest` や、キーワード引数の余り `**kwrest` を指定できる。これらは実引数の値をそれぞれ配列やハッシュの形に固めて受け取る。> https://docs.ruby-lang.org/ja/3.1/doc/spec=2fdef.html#method
>
> “`ruby
> # すべて持つ(極端な例なのでおすすめしない)
> def f(a, b, c, m = 1, n = 1, *rest, x, y, z, k: 1, **k
HTMLの基礎知識(星評価の平均)
今日もプログラミングしていますか?:sunny:
今回は星機能の平均の出し方を実装していきたいと思います!!
*注意
ここでは以下の詳細ページの実装が大前提となっております!!!“https://qiita.com/tomo089/items/246230912c32aa5c7864”
Step1:コントローラーの追加 “`:tweets_controller.rb
def show
@register = Register.find(params[:id])@reviews = @register.reviews
@review = Review.new
#変更箇所
@totals=@reviews.average(:eve)
#ここまでend
“`Step2:Viewの追加 “`:tweets_show.html.erb.
平均評価
Ruby on rails メモ①
### はじめに
記事を書くのは今回が初めての投稿です。
私は今エンジニア転職を目指して独学中なのですが、
色々な文献を見ているとアウトプットとしてQiitaなどに投稿すると知識の定着が図れるとのことなので、
早速やってみます笑### 直面した問題
現時点でprogateとRaisチュートリアルで勉強してきましたがroutesファイルの表記が違うんです!
例えばusersアクションのルーティングの記述について
こちらがRailsチュートリアル↓
“`
Rails.application.routes.draw doresource :users
end
“`
そしてこちらがprogate↓
“`
Rails.application.routes.draw dopost “users/create” => “users#create”
get “signup” => “users#new”end
“`えーーー!progateと違うじゃん!!!ってなりました笑
というのもRESTfulなUsersリソースを作成するためにresourcesメ
bundle install 時の idn-ruby エラー
## エラー内容
環境構築時の`bundle install` で `idn-ruby`に関するエラーに遭遇。“`
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.current directory: /Users/ynamiki/Desktop/sora/vendor/bundle/ruby/2.6.0/gems/idn-ruby-0.1.0/ext
/Users/ynamiki/.rbenv/versions/2.6.6/bin/ruby -I /Users/ynamiki/.rbenv/versions/2.6.6/lib/ruby/site_ruby/2.6.0 -r ./siteconf20220722-10264-bfer1i.rb extconf.rb
checking for -lidn… no
ERROR: could not find idn library!Please install the GNU IDN library or alternati
【Active Storage】ストレージ内にzipファイルを生成してDLする機能作成までにやったこと
## このノートの内容
– クラウドストレージ内のファイルをzipにまとめてDLしたかった
– ファイル処理のメソッドの理解が曖昧だったので、基礎から調べながら行った## 使用Gem
– [rubyzip](https://github.com/rubyzip/rubyzip)
## 調べた内容
### [File.join](https://docs.ruby-lang.org/ja/latest/method/File/s/join.html)
連結したいディレクトリ名やファイル名を文字列(もしくは文字列を要素に持つ配列)で与えます。
“`ruby
File.join(“a”,”b”) # => “a/b”
“`### [File.open](https://style.potepan.com/articles/27876.html)
Fileクラスから提供されているopenメソッドで、Rubyでファイルを開いたり・作成したりする際に呼び出す処理です。
読み込みや書き込み時にもファイルを開く必要があるため、ファイ
100日後くらいに個人開発するぞ!day061
## 今日はDateクラスを学んでみた!
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2632394/f4865f3e-8561-bc35-d6b1-0c1ac300ca35.png)
## 今日の学び
### Dateクラスの読み込み
* Dateクラスを用いると日付を扱うことができる
* DateクラスはRubyが用意しているクラスなので`require`で読み込みことができる
* 既に用意されているクラスを読み込む際は`require “クラス名”`
* 注)`require /.クラス名`ではない### Dateクラスの使い方
* Dateクラスは他のクラスと同様にDate.newとすることでインスタンスを生成できる
* `インスタンス変数 = Date.new(年,月,日)`### 曜日を判定するDateクラスのインスタンスメソッド
* 「日曜日かどうか」を真偽値で返す例
* `requre “date”`
【Rails】APIモードかつクロスオリジン間でCookieやSessionを使う方法【SPA】
# 環境
– Ruby 3.1.2
– Rails 6.1.6
– Vite 2.9.9
– Vue 3.2.25
– Docker
– Google Chrome (バージョン:103.0.5060.53)# 前提
– RailsはAPIモードで使用
– フロントエンドとバックエンド間は異なるオリジンでの通信# やり方
APIモードで起動したRailsはそのままではCookieを使うことができません。
なので、まずCookieを使うことができるようにします。“`ruby:app/controllers/application_controller.rb
class ApplicationController < ActionController::API include ActionController::Cookies # 追加 ``` ```ruby:config/application.rb module App class Application < Rails::Application # ... config.middleware.