やすまんの技術ブログ

駆け出しエンジニアが日々学んだこと、わからなかったことなどをまとめておくブログ。忘備録としても使います。

自動更新機能で値がundefindになってしまう。

結論 $.each(messages, function(message){ ではなく $.each(messages, function(i, message){ に変更する。 経緯 チャットアプリの自動更新機能を実装する際に相手方に送信したメッセージがundefindになってしまう https://gyazo.com/fb2ffabd585185d879af9…

自動更新機能で値がundefindになってしまう。

結論 $.each(messages, function(message){ ではなく $.each(messages, function(i, message){ に変更する。 経緯 チャットアプリの自動更新機能を実装する際に相手方に送信したメッセージがundefindになってしまう https://gyazo.com/fb2ffabd585185d879af9…

自動更新機能で値がundefindになってしまう。

結論 $.each(messages, function(message){ ではなく $.each(messages, function(i, message){ に変更する。 経緯 チャットアプリの自動更新機能を実装する際に相手方に送信したメッセージがundefindになってしまう https://gyazo.com/fb2ffabd585185d879af9…

グループに追加したメンバーを表示させる方法

https://gyazo.com/e2d417ea4bab45ea7400061e454b14ec 本来はこのように表示させたかったのですが、 先頭にある「sasa」が追加されなかった。 原因 main_chat.html.haml = current.user.name と記述してあったため。 current.user.name では、今回の場合はロ…

jqueryで画像が読み込めず、ビューが崩れてしまう。

jqueryで画像が読み込めず四苦八苦していた。 結論 imgタグの位置がおかしかったから。 経緯 が表示されてしまうので調べてみると、 img src="~~~~~~"の~~~~~~が間違っているとの記載があり、確認してみると <img src= "message.image" > となっていた。 これでは、message.imageが文字…

bundle installしたらエラーが出た。

Bundler could not find compatible versions for gem "sass-rails": In snapshot (Gemfile.lock): sass-rails (= 5.1.0) In Gemfile: sass-rails (~> 5.0) compass-rails (= 3.1.0) was resolved to 3.1.0, which depends on sass-rails (< 5.1) Running `b…

bundle installしたらエラーが出た。

Bundler could not find compatible versions for gem "sass-rails": In snapshot (Gemfile.lock): sass-rails (= 5.1.0) In Gemfile: sass-rails (~> 5.0) compass-rails (= 3.1.0) was resolved to 3.1.0, which depends on sass-rails (< 5.1) Running `b…

no method errorが出たとき

結論 ファイルの命名規則に沿って、記述がしてなかったため。 経緯 rspecを用いてコントローラのテストを実施しようとした。 bundle exec rspec spec/controller/messages_controller.rb をターミナルで実施すると また、スペルミスかー おや、間違ってない…

no method errorが出たとき

結論 ファイルの命名規則に沿って、記述がしてなかったため。 経緯 rspecを用いてコントローラのテストを実施しようとした。 bundle exec rspec spec/controller/messages_controller.rb をターミナルで実施すると また、スペルミスかー おや、間違ってない…

expected ["を入力してください"] to include "must exist"について

結論 "must exist"を"入力してください"に変更してねという意味 経緯 まずなぜこのエラーが出たのかというと、 expect(message.errors[:text]).to include("must exist") と入力していたから。 実は、テストコードを入力する前に、jayamlをインストールして…

discribe/context/it/expectについて

テストはだいたい型が決まっているので、何を書けば良いのかを確認できるように忘備録として残しておきます。 describeは何をテストするのか contextはどのような条件でテストをするのか itは何をアウトプットするのかを記述する。 expectはこうなってほしい…

ビューが思い通りに表示されない

グループ編集機能を実装後、動作確認のため、 変更ボタンを押したら、違うビューファイルに飛んでしまった。 理由 =link_toで飛ばす場所を間違えてしまっていた。 本来は = link_to edit_group_path(@group) do とするべきところを = link_to edit_users_pat…

 rake routes について

rake routesをすると root GET / groups#index users GET /users(.:format) users#index POST /users(.:format) users#create edit_user GET /users/:id/edit(.:format) users#edit (一部抜粋) となるが、一番上のroot GET / groups#index の「/」は「root…

Couldn't find Group with 'id'= の解決方法

メッセージ送信機能を実装中に発生。 結論 routes.rbで入れ子構造にしていなかったから。 経緯 Couldn't find Group with 'id'= の意味は、グループI'dが持ってこれないよと言っている。 ということは、 データベースに「group_id」の記述がない コントロー…

データの取得方法(find)

データベースからデータを取得したい場合は 決められたコードを入力しないと、取得できない、もしくはエラーになる。 find @group = Group.find(params[:group_id]) モデル名.取得するコード(取得するもの) findを使う場合は、idを取得する場合に使う。

referencesの使い方。

使用方法 マイグレーションファイル t.references :group, null:false, foreign_key: true 使用するメリット 自動でindexをつけてくれる。 勝手にgroup_idを作ってくれる。(referencesの中には本当はgroup_idがっ入っている。なので、〜idの時は基本的に使っ…

コントローラとモデルの作成方法。

コントローラの作成方法 ターミナル $ rails g cotroller groups モデルの作成方法 ターミナル $ rails g model group

syntax error, unexpected tSTRING_BEG, expecting keyword_endの解決方法

結論 「:」を消す。 もしくは「,」をつける。 チャットアプリにフラッシュメッセージを実装する時に起きたエラー。 redirect_to root_path, :notice "アカウントが登録されました" これを redirect_to root_path, notice "アカウントが登録されました" にす…

I18n.enforce_available_localesの解決方法

結論 I18n.enforce_available_locales = false を記述する。 解き方 そもそもこのエラーはバージョンに問題がある時に起きるエラーではありますが、 I18n.enforce_available_locales = false を入力すれば解決できます。 configファイルに関連するところなの…

PendingMigrationErrorの解決方法。

経緯 アプリにサインアップ機能を付け加えるために、 ターミナルで $ rails g migration AddNameToUser name: string 入力後 applicationcontrollerに before_action :configure_permitted_parameters, if: :devise_controller? protected def configure_per…

rails gコマンドとは

結論 rails generateコマンドの略で、ターミナル上でrails gと入力することで、必要なソースコードを自動で入力した状態でファイルを作成してくれる機能。 使い方 コントローラーを作成したい $ rails g controller モデルを作成したい $ rails g model

要素を隠す方法

css

結論 display: none を使用する。 display:noneを使用することで、親要素であるイメージのアイコンの下にあるファイルを選択という子要素を隠すことができる。 メルカリなど大規模なサイトでもだいたい使われているので覚えておく!

lavelタグについて

lavelタグの機能 lavelタグは、fontawesomeで画像投稿フォームを用いることで、通常表示される「投稿フォーム」の文言を消すことができる。

The line was indented 2 levels deeper than the previous line.の解決方法

結論 半角スペースの位置を確認する。 やり方 エラー文を見ると、スペースの位置がおかしいんじゃない? と教えてくれているので、該当の箇所を確認する。 .chat .chat-main__group-info test = link_to"########" do これだとスペースの位置がおかしいので…

同じ表示を複数出したいとき

結論 hamlに書いたものを複製して下に貼り付ければ良い。 どういうことか haml .chat-main__message-user mama.chat-main__message-list-date 2019/11/12.chat-main__message いい加減にしなさい.chat-main__send-message-user mama.chat-main__send-message…

aタグの装飾方法

css

aタグの装飾方法 結論 aタグは別でクラスを作って装飾をする。 やり方 haml ul.side-bar__top-items__icon =link_to("#####", class: "side__btn side__btn--edit") do = icon('fas', 'cog', class: "side__btn--icon") scss .side-bar__top-items__icon { c…

要素を横並びにしたいときは

css

結論 flex boxというレイアウト方法を使用する 使い方 横並びにしたい子要素の親要素にdisplay: flexと入力する。 子要素に横幅や要素間の隙間などを記載する。

勝手にルーティングが生成されてしまうのはなぜか?

※これは解決記事ではないです。 routes.rbに Rails.aplication.routes.drow do root "messages#index" #For details ~~~~~~~end を記述してターミナルに $ rails g controller messages index を入力して実行すると、 Rails.aplication.routes.drow do get '…

勝手にルーティングが生成されてしまうのはなぜか?

※これは解決記事ではないです。 routes.rbに Rails.aplication.routes.drow do root "messages#index" #For details ~~~~~~~end を記述してターミナルに $ rails g controller messages index を入力して実行すると、 Rails.aplication.routes.drow do get '…

インデントエラー Inconsistent indentationの解決方法

結論 5 spaces used for indentation, but the rest of the document was indented using 2 spaces. とあるので、半角スペースの数を5つから2つにしてねと書いてあるので スペースの数を修正する。 =link_to "https://www.yahoo.com/", class: "contents__…