やすまんの技術ブログ

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

rails

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

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

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…

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

グループ編集機能を実装後、動作確認のため、 変更ボタンを押したら、違うビューファイルに飛んでしまった。 理由 =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

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

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

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

※これは解決記事ではないです。 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__…

タスクを見たいときはどうすれば良いか

railsでタスクを見たいときはどうすれば良いのか 結論 rake -Tをする USERnoxxxxxxxr:view_drill user$ rake -T これでタスクが表示されるようになる

rails aborted!が出てしまった時の解決方法

結論 そもそもbundleinstallするファイルを間違えていたのが原因という悲しい事実。 通常通りやればできたのに。 経緯 bundle installをした後にrails:erb2hamlをしたら USERxxxxxxx:view_drill user$ rails haml:erb2haml rails aborted! Don't know how to…

railsにおけるstringとtextの違い

データベース設計に関してtringとtextの違いがわからなかったのでメモ書き。 string 入力できる文字が255字以内。 主な用途は、一言入力したいときなどに使う。(名前、電話番号、住所など) ツイッターはstringなのかな? text 入力できる文字は無制限。 …