- 1. 備忘 railsのrake_taskでmodelを更新するときに反映されない..
- 2. Gitフックでgit commit時にRubocopを走らせる方法
- 3. railsチュートリアル第五章 Userコントローラ
- 4. Railsプロジェクトのペネトレーションテストで指摘事項
- 5. railsチュートリアル第五章 リンクのテスト
- 6. 【Rails】form_withに関する基本知識
- 7. 【Rails】Cocoonを用いて親子テーブルの内容を任意の数だけ保存する。
- 8. ルーティングについて勉強しなおそう
- 9. Herokuデプロイ奮闘記2(前編)
- 10. クラスを自作してオブジェクト指向を学ぶ
- 11. GithubActions Errno::EACCES: Permission deniedの解決
- 12. 遅いRSpecのコードを改善したときのお話
- 13. 【RSpec】expected `User.count` to have changed by 1, but was changed by 0というエラーの解決方法
- 14. railsチュートリアル第五章 ユーザ登録用url
- 15. 実務未経験者がRailsでアプリケーションを作成してみた【Rails / Vue.js / AWS】
- 16. railsチュートリアル第五章 名前付きルート
- 17. railsチュートリアル第五章 contactページ
- 18. 【Rails】FontAwesomeの使い方/アイコンにアニメーションを付ける
- 19. [ruby]約数を足し算する方法
- 20. [Rails]初のbundle installでmysql2のエラーが出た時の解決策をまとめてみた
備忘 railsのrake_taskでmodelを更新するときに反映されない..
なぜか、updateやcreateがtrueで完了するのに、更新が反映されなかった。
結局は、validateエラーになっていたのだが、そのレスポンスがなくてハマった。
以下のコマンドでvalidateを確認出来る。
“`
MODELインスタンス.valid?
pp(MODELインスタンス.errors.messages)“`
Gitフックでgit commit時にRubocopを走らせる方法
Gitに備わっているGitフックのpre-commitという機能を使って、
`git commit`時にRubocopを走らせる方法を紹介します。
[- Gitフックとは](https://git-scm.com/book/ja/v2/Git-%E3%81%AE%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA-Git-%E3%83%95%E3%83%83%E3%82%AF)
[- appbrew Tech Blog (pre-commitとは) ](https://tech.appbrew.io/entry/2020/05/15/132413#pre-commit%E3%81%A8%E3%81%AF)### 手順1.
chmodコマンドで、設定を記述する`.git/hooks/pre-commit`の実行権限を与えるhttps://qiita.com/ntkgcj/items/6450e25c5564ccaa1b95
“`:ターミナル
chmod a+x .git/hooks/pre-commit
“`###
railsチュートリアル第五章 Userコントローラ
##ユーザー登録: 最初のステップ
この節では、レイアウトとルーティングの取り組みにおける頂点として、“`ユーザー登録ページへのルーティングを作成“`
“`2番目のコントローラを作成“`することになります。
これは、“`Webサイトでユーザー登録を行えるようにするため“`の最初の重要な一歩となります次の一歩であるユーザーのモデリングは第6章で行い、第7章でユーザー登録が完成。
###Userコントローラ
最初のコントローラである“`StaticPagesコントローラを作成“`
2番目のコントローラである“`Usersコントローラを作成“`
“`generate“`を実行して、現時点での要求である“`新規ユーザー用のユーザー登録ページ(スタブ)を持つ“`、最も簡単なコントローラを作成
Railsで好まれているRESTアーキテクチャの規約に従い、“`新規ユーザー用のアクションをnew“`を使う。
“`generate controllerの引数にnew“`を渡して、“`自動的にアクションを作成“`してみましょう。
####Usersコントローラ
Railsプロジェクトのペネトレーションテストで指摘事項
# 0. はじめに
これまで複数の企業にてRailsプロジェクトに携わらせていただきましたが、その中で何度かペネトレーションテストを行っていただく機会に恵まれました。そこで、本記事では過去に指摘されたことのある事項を紹介したいと思います。なお、ここで紹介した指摘はすべて修正済みとなっています。# 1. Cookieセッションでログイン
### 指摘事項
Rails.application.config.session_storeで:cookie_storeが指定されており、Cookieが盗み取られると不正ログインができてしまう### 対策
Railsはデフォルトではセッション情報はCookieのみに保存し、サーバーサイドで保存しません。これでは、Cookieが盗み取られてしまうと不正にログインが可能となってしまいます。そこで、redisやactiverecord-session_store[^1]を利用して、セッション情報をサーバーサイド側に持たせる必要があります。
リレーショナルデータベースを利用しているのであれば、activerecord-session_storeを利用す
railsチュートリアル第五章 リンクのテスト
###リンクのテスト
レイアウト内のいくつかのリンクを埋めることができたので、これらのリンクが正しく動いているかどうかチェックするテストを書いてみよう。ブラウザを立ち上げてルートURLにアクセスし、それぞれのリンクをクリックして確かめることもできる。
しかし変更する度にこの作業を毎回繰り返していくのは大きな負担です。
そこで、「“`統合テスト(Integration Test)“`」を使って一連の作業を自動化してみよう。
アプリケーションの動作を端から端まで(end-to-end)シミュレートしてテストすることができます。site_layoutというテストのテンプレートを生成するところから始めてみます。
“`
rails generate integration_test site_layout
invoke test_unit
create test/integration/site_layout_test.rb
“`
Railsは渡されたファイル名の末尾に _test という文字列を追加することに注目今回の目的は、アプリケーショ
【Rails】form_withに関する基本知識
# form_withメソッドとは
フォームを実装するためのヘルパーメソッドです。
ヘルパーメソッドとは、主にビューでHTMLタグを出現させたりテキストを加工するために使用するメソッドのことです。
HTMLのformタグの代わりに使用できます。**【例】HTMLのフォーム記述**
“`
“`
↓↓これをこのように書き換えることができます
**【例】ヘルパーメソッドを用いたフォーム記述**“`
<%= form_with url: "/posts", method: :post, local: true do |form| %>
<%= form.text_field :content %>
<%= form.submit '投稿する' %>
<% end %>
“`ヘルパーメソッドはRubyとして取り扱われるので、表示する
【Rails】Cocoonを用いて親子テーブルの内容を任意の数だけ保存する。
#この記事/メモについて
本記事では”cocoon”というgemを用いて、モデルに紐づいた子モデルの内容を同時に保存できるようにします。
具体的には以下のようにして、
menuの投稿時にhas_manyで紐づいたfoodモデルを、
またfoodモデルにhas_manyで紐づいたmaterialモデルを任意の数だけ保存できるようにします。![ezgif.com-gif-maker.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/409257/1c95e397-6016-8a32-a49c-ebc9628fb38c.gif)
ここでは、表のような情報を開発者が入れる初期データとして保存していこうと思います。
menuモデル
| ID | name | plan |
|:–:|:———–:|:————————:|
| 1 | 献立① | 朝ごはん用 |
| 2
ルーティングについて勉強しなおそう
#ルーティングとは
受け取ったリクエストを認識し、適切なコントローラ内のアクションの実行をするもの。“`ruby
HTTPメソッド ‘パス’, to: ‘コントローラ名#アクション名’
“`
上記のような書き方でroutes.rb内に記述していく。###凡例
“`ruby
#ルーティングの記述
get ‘/samples/:id’, to: ‘samples#show’#HTTPリクエスト
Get /samples/21
“`
上記のようにルーティングされ、HTTPメソッドが送られてきたとする。このリクエストはsamplesコントローラのshowアクションに割り当てられて、paramsには{ id: ’21’ }というハッシュが含まれている。
Herokuデプロイ奮闘記2(前編)
(続編のつもりなかったんだけど…)
あまりにも苦戦したので…(笑)それと、色々タメになりそうなことも学んだので、アウトプットします!
# 今回の話の流れ
序章〜プロローグ〜 す べ て の は じ ま り
第1章 “[BUG] Segmentation fault at 0x0000000000000000” を除去する
第2章 “[BUG] Segmentation fault at 0x0000000000000000” を回避する
第3章 “NoMethodError: undefined method \`[]’ for nil:NilClass” を解決してデプロイする
第4章 Gem`sass-rails`を6系列にインストールし直してデプロイする
終章〜エピローグ〜 今回学んだこと※ 前編は第2章まで
# すべてを解決に導く結論
**`image-url`ヘルパーはSassによるもの**なので、これを使用しているスタイルシートは、CSSではなくSCSSファイルでなければならない。これだけだっ
クラスを自作してオブジェクト指向を学ぶ
##経緯
習作としてQiitaを模した簡易版Webアプリを作成途中、オブジェクト指向を学ぶべく自作のクラスを作ることになったのでそのリファクタリングの経過を残す##前提
記事(Article)クラスが存在##環境
MacOS BigSur Ver11.5.2
Ruby 3.0.2
Rails 6.1.4.1##広告クラス作り方
1. viewsにとりあえずの完成形を表示させてみる
2. controllersにコードを移して表示させてみる
3. modelsにコードを移して表示させてみる
4. adモデルを作ってarticleモデルから独立させてみる
(articleモデルの中に広告に関するメソッドがあるのは今後見づらいので)### ①viewsに画像リンクベタ貼り
広告となる画像を5つ用意“`app/views/articles/show.html.erb
GithubActions Errno::EACCES: Permission deniedの解決# 起こっていること
GithubActionsを用いて自動デプロイした際に急に
Errno::EACCES: Permission denied @ apply2files – のエラーがでました。# エラー内容
すごく長いので要点の箇所だけ抜粋します。“`
rails aborted!
Errno::EACCES: Permission denied @ apply2files – /home/***/Beginners_Camp/tmp/cache/assets/sprockets/v3.0/NT/NTu0FZHjIrwvcxJ1nnTegT5SvGLkugb1ZWoTRebr0jo.cache~省略~
bin/rails:9:in `
‘
Tasks: TOP => assets:precompile
(See full trace by running task with –trace)
Error: Process completed with exit code 1.
“``Error: Process completed with
遅いRSpecのコードを改善したときのお話
# 初めに
Jenkinsサーバがやけに不安定で、高負荷の影響により503エラーが発生していました。これはまずいということで、原因を調べていたところ、めちゃくちゃ重いRSpecのコードを発見。これを改善したときのお話をここに書きます。# 環境設定
– OS: Windows10 Pro 64bit
– Version: 1909
– OS build: 18363.1256
– WLS
– Ubuntu 20.04
– Ruby 2.7.2
– Rails 6.0.3.3# 問題があるテストコードの特定
ローカルですべてのテストコード実行するのも時間かかるので、Jenkins上で実行しているテストコードの単位を分割して、様子見てみます。“`shell:JobScript
# ディレクトリごとに分割して、実行 –profile オプションで遅いテストケースを20個ほど表示
bundle exec rspec –profile 20 spec/controllers/*
bundle exec rspec –profile 20 spec/dec
【RSpec】expected `User.count` to have changed by 1, but was changed by 0というエラーの解決方法
#対象者
* タイトル記載のエラーに苦しんでる方
* RSpecテストのコードを書いている方#目的
* エラーを解決して、テストを正常に稼働させる
#実際の手順と実例
###1.前提と現状![スクリーンショット 2021-09-21 21.18.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1681213/ce96bf4f-b8a5-fbf8-131c-3a6a1e50f900.png)
ユーザーの新規登録が成功するかどうかのテスト実行時にこのようなエラーがでました、、、
直訳すると
““
User.count “が1だけ変化したと思ったら、0だけ変化していた。
““
推測すると新規登録が正常に行えず、Userが1人増えなかったということだと思いました。該当ソースコードは以下の通り
““`spec/system/before_login_spec.rb
describe “ユーザー新規登録のテスト” do
before do
railsチュートリアル第五章 ユーザ登録用url
###ユーザー登録用url
新規ユーザー用の動作するページが“`/users/new“`にできました。
URLは“`/users/new“`ではなく表のとおりに“`/signup “`にしたいと思います
ユーザー登録URL用に“`get ‘/signup’ “`のルートを追加します####ユーザー登録ページのルート red
“`rb
Rails.application.routes.draw do
root ‘static_pages#home’
# 何の意味がわからん
# ホーム画面がhomeページなるらしい
get ‘/help’, to: ‘static_pages#help’
# static_pagesコントローラからhomeアクションに紐付けされる
# getでアクセルすることでページを取得することができる
get ‘/about’, to: ‘static_pages#about’
# 何を書いているかはわからない
get ‘/contact’, to: ‘static_pages#contact
実務未経験者がRailsでアプリケーションを作成してみた【Rails / Vue.js / AWS】
#はじめに
こんにちは、かわらと申します!
この記事は実務未経験者が独学でアプリケーションを作成した内容を解説したものです。
またアプリケーションを作成するにあたり学習した内容もまとめました。転職活動中のため、ご興味ある方がいましたら下記のtwitterアカウントよりご連絡をいただけると幸いです。
twitterアカウント
Tweets by kawarublog
GitHubアカウント
https://github.com/kawarazaki3782/teamcare
アプリのURL
https://www.teamcare-app.com/
#目次
・作成したアプリケーション
・学習内容
・心がけたこと
・さいごに
#作成したアプリケーション
アプリ名[チームケア]
介護者同士や介護者と事業者の交流を目的としたSNS###開発した背景
このアプリの目的は介護者を孤立させないことです。
私は約10年間、介護の仕事をしてきました。
その中で自宅で介護する人が孤立してしまう問題に遭遇してきました。
介護者を支援するサービスはありますが、その存在を知らなかった
railsチュートリアル第五章 名前付きルート
####名前付きルート
ルートを定義したことにより、レイアウトの中で名前付きルートが使えるようになりました
速、link_toメソッドの2番目の引数で、適切な名前付きルートを使ってみましょう。“`html
<%= link_to "About", '#' %>
“`
置き換え“`html
<%= link_to "About", about_path %>
“`
HomeページとHelpページへのリンクを持つheaderパーシャル _header.html.erbから取り掛かります。
headerパーシャルでは、Web共通の慣習に従って、ロゴにもHomeページへのリンクを追加
#####headerパーシャルにリンクを追加する“`html
<%= link_to "sample app", root_path, id: "logo" %>関連する記事
OTHERカテゴリの最新記事
-
- 2024.11.09
iOS関連のことを調べてみた
-
- 2024.11.09
JAVA関連のことを調べてみた
-
- 2024.11.09
JavaScript関連のことを調べてみた
-
- 2024.11.09
Rails関連のことを調べてみた
-
- 2024.11.09
Python関連のことを調べてみた
-
- 2024.11.09
Lambda関連のことを調べてみた