LoginSignup
0
0

More than 1 year has passed since last update.

【Rubyなど】学習したことまとめ

Posted at

最近Rubyを使った開発を始めたので、周辺も含め学んだことを色々とまとめていきます。

ルーティングと.erbファイルの関係性

URLのリクエストをroutes.rbでコントローラのアクションに割り当てて、コントローラで定義されているアクション名を元にしてどのviewを起動し、erbファイルを実行してHTMLを生成するかを決めています。

例えば、

routes.rb
    root 'users#index'

の場合は

app/controllers/users_controller.rb
    def index
        @users = User.all
    end

にルーティングされ、
app/views/users/index.html.erbが実行されてHTMLとして表示されるようになリます。
つまり省略されているが、アクション名=view名(erbファイル名)となっています。

unless文

ruby特有というわけでは無いですが、今まで使ったことがありませんでした。
if文は「条件式が真の場合に実行する処理」を書きますが、unless文はその逆です。

unless 条件式
  条件式が偽の場合に実行する処理
else
  条件式が真の場合に実行する処理
end

CSS:指定した箇所を非表示にする

CSSで display: none; を使うことで、その部分を非表示にできます。

例えばこのような表示のとき、
スクリーンショット 2022-08-30 16.01.44.png
こう指定すると

HOME.html
  <p class="code1">表示する</p>
  <p class="code2">表示しない</p>
style.css
  .code2{
  display: none;
  }

こうなります。
スクリーンショット 2022-08-30 16.05.52.png

.erbのクラス内でif文を書く

view.html.erb
  <div class="form1 <%= "form2" if @user.name='たかし' =%>">

userの名前が「たかし」なら、form2が適用されます。
下記の記事を参考にしました。

コードが意図した通りに動かない時にやってみること

ログを仕込んで、処理が通過している部分やデータの中身を確認することが大切だと学びました。また、そもそもコード自体が間違っている可能性を考えることも必要です。

競合の解決

プルリクを出した際の競合を解消しました。

ブランチA→ブランチBにマージしようとして競合した場合

ローカルブランチでの作業になります。
まず、ブランチAに移動します。
続いてブランチBをpullします。
競合している箇所が表示されるので、解消させます。
その後は、いつも通りコミットしてpushします。

今回発生した競合は簡単なものでしたが、基本は掴めたのではないかと思います。

おわりに

Rubyの開発で学んだことを色々と記しました。開発と一口に言っても様々な要素が折り重なっていて、日々知識不足・勉強不足を痛感しています。
今後も学んだことがあれば、随時追記していきたいです。
この記事が参考になると嬉しいです( ̄▽ ̄)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0