Help us understand the problem. What is going on with this article?

【Rails男子必見】エラー系女子との会話が弾む3つのテクニック【モテたい】

はじめに

添野です。TECH::EXPERTというプログラミングスクールに通っています。
7日目で基礎本試験を突破しました。

今日はエラー系女子にモテたい男子必見
Railsのエラー問題で苦戦中の方向けの記事です。

モテる男子の会話テクニック

モテる男子がどんな会話をしているのか、渋谷のエラー系女子にインタビューしてみました。

✅ちゃんと話(エラー文)を聞いてくれて、私のことをしっかり考えてくれる(20歳 OL)
✅私が怒って(エラーを出して)も何の話をしてるのか考えてくれて、先回りで行動してくれる(17 歳JK)
✅前に話したこと(エラー)を覚えていて、何度も同じことを言わなくていいと気が楽ですね(26歳 看護師)

話を聞いてくれる男子と一緒にいたいと感じるようですね。
それでは、インタビューで出た女子の意見について詳しく見ていきましょう。

1. ちゃんと話を聞く「エラー文を見る」

皆さんは彼女とケンカになって、一方的に自分の意見を言ってしまった経験はありませんか?

モテる男子になるにはまず、エラー系女子の話をちゃんと聞いてあげましょう
例えば、次のエラー文を見てください。
スクリーンショット 2020-02-24 10.19.17.png

実はエラー文には「直すべきファイルが何か」「どう直せばいいか」が書かれているときがあります。
彼女は「あんたのここがダメだって言ってんでしょ!こうしてよ!」ってわざわざ教えてくれてます
「showビューの6行目"user_signed_in"を"user_signed_in ? "に直せ」と書いてあるので、
これを直すだけで彼女の怒りは収まり、あなたはモテる男に生まれ変わります。

とにかく、最初は彼女の言っていることをしっかり聞きましょう。

2. 何の話か考える「対象のファイルを特定する」

上記のように直すべき点を指摘してくれる場合は楽ですが、世の中親切な女の子ばかりではありません。
それでも、好きな子には振り向いて欲しいですよね。そんなアナタにとっておきの方法です。

次のエラー文を見てください。
これは、pictweetアプリでログアウトボタンをクリックしたら発生しました。
スクリーンショット 2020-02-24 10.36.37.png

これだけでは何のエラーかさっぱりですが、モテる男子はここで「あの話かな?」と先読みをします
そして、先読みをするには「直前にあなたがとった行動」を思い出してください。
例えば、上記のエラーでは直前に「ログアウトボタン」をクリックしました。
ということは「ログアウトボタンに関係する何か」で彼女が怒っているのだと先読みできます。

ログアウトボタンはapplicationビューに書かれているので、ファイルの中を見てみると、
「, method: :delete」という記述が抜けていることに気付きます。これが彼女の怒りの原因です。

before
<%= link_to "ログアウト", destroy_user_session_path>

after
<%= link_to "ログアウト", destroy_user_session_path, method: :delete %>



ここで、「記述抜けなんて、そんなの気づけなくね?」と思うかもです。
そんな時は作りたいアプリの完成形を横に並べておきましょう。補助輪を付けるんです。

「そんなのダサいし勉強にならない」と思うかもしれません。ですが、プライドを捨ててください
この方が早く成長できます。モテる男は、無駄なプライドは捨てています。
モノマネ・パクりから始めましょう。自分磨きは、その後です。

こうして、モテる男は常に女の子の不満を先読みし、自分の行動を変えていきます

3. 前に話したことを覚えている「エラーリストを作る」

これも特に多かった意見です。何度も同じことを言わせる男子はモテません
一度指摘されたり、先読みで特定した彼女の不満をリスト化して、常にエラーに備えましょう。

インタビューでは、「エラー系女子を怒らせたRails男子の行動Top14」も調査してきました。
ランキング形式で発表していきます。モテたい男子の皆さん、要チェックですよ!!

第14位「検索すると全ての投稿が表示される」

検索用パラメータ受け渡し時のキー名の記載ミス
対象ファイル:indexビュー

before
<%= form.text_field :keywords, placeholder: "投稿
検索", class: "search-input" %>

after
<%= form.text_field :keyword, placeholder: "投稿
検索", class: "search-input" %>

第13位「ArgumentError」

引数指定の記載漏れ
対象ファイル:tweetモデル

before
def self.search

after
def self.search(search)

第12位「ActionControl ler::ParameterMissing」

form_withを使用しているのにformの記述が抜けている
対象ファイル:showビュー

before
<%= form_with(model: [@tweet,@comment], local: true) do |form| %>
  <textarea cols="30" name="text" placeholder="" rows="2"></textarea>
  <input type="submit" value="SEND">
<% end %>

after
<%= form_with(model: [@tweet,@comment], local: true) do |form| %>
  <%= form.text_area :text, placeholder: "text" , rows: "2" %>
  <%= form.submit "SEND" %>
<% end %>

第11位「リファクタリング問題」

省略できる記述が省略せずに書かれている
対象ファイル:indexビュー

before
<% @tweets.each do |tweet| %>
  <%= render partial: "tweet", locals: { tweet: tweet } %>
<% end %>

after
<%= render @tweets %>

彼氏のメールが長すぎて何を言いたいか分からない

第10位「Undefined method」

パターン1「ログイン判定記述ミス
対象ファイル:applicationビュー

before
<% if true %>

after
<% if user_signed_in? %>

パターン2「deviseメソッドの記述位置ミス」
対象ファイル:ルーティングファイル

before
resources :tweets
devise_for :users

after
devise_for :users
resources :tweets

第9位「AcctiveRecord::RecordNotFound」

パターン1「ログアウトボタン記述ミス
対象ファイル:applicationビュー

before
<%= link_to "ログアウト", destroy_user_session_path %>

after
<%= link_to "ログアウト", destroy_user_session_path, method: :delete
%>

パターン2「namespaceメソッドとresourcesメソッドの記述順ミス
対象ファイル:ルーティングファイル

before
resources :tweets do
  resources :comments, only: :create
end
namespace :tweets do
  resources :searches, only: :index
end

after
namespace :tweets do
  resources :searches, only: :index
end
resources :tweets do
  resources :comments, only: :create
end

第8位「NotNullViolation」

「deviseパラメータに指定しているキー名の記述ミス」
対象ファイル:applicationコントローラー

before
devise_parameter_sanitizer.permit(:sign_up, keys: [:name])

after
devise_parameter_sanitizer.permit(:sign_up, keys: [:nickname]

イタリアンを食べに行こうって言ってデートにきたら寿司屋に連れてかれた

第7位「空のツイートを保存できてしまう」

バリデーションの記述がない
対象ファイル:tweetモデル

before

after
validates :text, :image, presence: true

第6位「ターミナルでNo template found」

ページ切替のリダイレクトアクション記載漏れ
対象ファイル:commentsコントローラー

before

after
redirect_to tweet_path(@comment.tweet)

第5位「テキストや画像、コメントが表示されない」

ストロングパラメーターの記述ミス
対象ファイル:tweetsコントローラー

before
{ user_id: current_user.id }

after
params.permit(:image, :text).merge(user_id: current_user.id)

LINEで素直な感謝の気持ちを送ったのに、未読スルー

第4位「NoMethodError」

パターン1「renderメソッドで誤字
対象ファイル:newビュー

before
<%= render partial: "form", locals: { form: @form } %>

after
<%= render partial: "form", locals: { form: form } %>

デートの集合場所の住所をLINEで送ってきたのに、間違ってる

パターン2「commentのルーティングがネストされてない
対象ファイル:ルーティングファイル

before
resources :tweets
resources :comments, only: :create


after
resources :tweets do
  resources :comments, only: :create
end

デートの集合場所を、私が入ってないLINEグループにLINEしたことに気づいてない

パターン3「コントローラーの誤字
対象ファイル:tweetsコントローラー

before
def index
  @post = Post.includes(:user)
end


after
def index
  @posts = Post.includes(:user)
end

パターン4「パス指定順のミス
対象ファイル:showビュー

before
<%= form_with(model: [@comment, @tweet], local: true) do |form| %>

after
<%= form_with(model: [@tweet, @comment], local: true) do |form| %>

第3位「ツイート保存不可(表示されない)」

ストロングパラメーターのrequireメソッド記述抜け
対象ファイル:tweetsコントローラー

before
params.permit(:image, :text).merge(user_id: current_user.id)

after
params.require(:tweet).permit(:image, :text).merge(user_id: current_user.id)

第2位「ActionView::MissingTemplate」

パターン1「ビューファイルがない/配置が間違ってる
対象ファイル:_tweetビュー(部分テンプレート)

before
部分テンプレート名が"tweet.html.erb"

after
部分テンプレート名を"_tweet.html.erb"に修正

東京タワーを展望できるホテルというタレコミでデートにきたのに、東京タワーが見えない部屋を予約していた

パターン2「renderメソッドの記述ミス
対象ファイル:showビュー

before
<%= render partial: "/post", locals: { post: post } %>

after
<%= render partial: "posts/post", locals: { post: post } %>

第1位「Rounting Error」

対象ファイル:ルーティングファイル

パターン1 resourcesメソッドの誤字または抜け
indx→indexに修正、:createが抜けているので追加

before
resources :tweets, only: [:indx, :show, :new, :destroy, :edit, :update] do
after
resources :tweets, only: [:index, :show, :new, :create, :destroy, :edit, :update] do

パターン2 rootメソッドの誤字

before
root to: 'post#index'

after
root to: 'posts#index'

デート当日になって、デート先を決めてない/デート先を忘れた/道を間違えた

まとめ

いかがだったでしょうか。
最後にもう一度、モテる男子の特徴をおさらいしましょう。

✅ちゃんと話を聞く「エラー文を見る」
✅何の話か考える「対象のファイルを特定する」
✅前に話したことを覚えている「エラーリストを作る」

大まかに理解できたら、上記でなぜモテるのかを考えて、自分を磨いていきましょう。
以上、Rails男子がエラー系女子にモテる方法でした。

おすすめ記事
Rails消化のコツ
Rails用語集 基礎
Railsは"5つの属性"を意識しろ


添野又吉(@enjoy_omame)
https://twitter.com/enjoy_omame

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした