進捗

主にRubyを使用してます。

最近よく思うこと

早いもので、新卒としてソフトウェアエンジニアになってから1年と7ヶ月が経ちました。

まだまだ、分からないことばかりで、
日々少しでも進歩しようと精進しています。

そんな中で、最近よく考えることがあります。

「理解しなければならない知識の範囲広すぎない?」

たったの1年7ヶ月で何を。。
と思われる方もいると思うのですが、

勉強すればするほど、わからないことが増える。
あれもやらないとこれもやらないとと無限に勉強すべき範囲がある。

ここ最近ずっとこんな感じです。

決して勉強がつまらない、とかソフトウェアエンジニアとしての仕事が辛いとかではありません。

もちろん辛いこともありますが、それなりにやりがいを持って働けていますし、
勉強も楽しくやれています。

ただ、なんというか、先が見えないトンネルの中でもがいているようなそんな感じです。
そして、どんどん出口が遠くなっているような気がします。

学生時代から、コンピュータサイエンスを学んでいる人、ある程度の下地がある人
このような方々は「わからない」の見え方が違うのかなとも思ったりします。

そんなこんなでお金を貯めて、社会人大学に入ってコンピュータサイエンスを学び直したいと
思い始めました。

CSを学んだから、必ずしも今までモヤがかかっていたものがスッキリするというわけではないと思います。
でも、このトンネルを抜け出すことが出来る、または出口が少し見えてくるような糸口になるのではないかと思っています。

そんなことを考えている今年の11月でした。
「〇〇チョットワカル」エンジニアになれるよう頑張ります。

rails ルーティングの確認について

ルーティングの確認方法について。


結構忘れてしまうので、メモ代わりに。


1、rails routes
ターミナルで

(bundle exec) rails routes

を叩く


2、/rails/info/routes
urlのルートURLの後に

/rails/info/routes

を追加するだけ



個人的にはブラウザで確認できる
2番がおすすめ

Decoratorディレクトリ内でファイルがネストされてる時の呼び出し方法について

railsのdecoratorを使っていたんですが、
ちょいとハマったので、メモとして残します。


Draperというgemを使って、デコレーターを作成し、
使用しようとしていました。

基本的には、app/decorators/ 直下にデコレーターファイルを作成し、
呼び出せば問題ない。


例えば、app/decorators/user_decorator.rbファイルを呼び出す時、

def index
  @user = User.find{params[:id]).decorate
end

これで問題ない。


しかし、今回は、app/decorators/~~/~~/配下にあるデコレーター
を呼び出したかったが、
上記のような方法では、
Could not infer a decorator for
というエラーが出て、呼び出すことができなかった。


そこで、(app/decorators/user/page_decorator.rbを呼び出す時)

def index
  @user = User::PageDecorator.decorate(params[:id])
end

とすることで
無事呼び出すことができた。
nekorails.hatenablog.com

rails kaminaryによるページネーションについて

一覧表示画面において、ページネーションを作成していました。


その際に、kaminariというgemを使用しました。
その際、ページによってページネーションの
スタイルを変える方法でハマったので、
書いておきます。


例えば、kaminariのviewファイルディレクトリが

kaminari
|
|
-----mypage1-----kaminariの各viewファイル
|
|
|
|
-----mypage2 ----kaminariの各viewファイル

のようになっていた場合、

ページネーションを表示するviewファイルで

~~
= paginate(@~~, :theme=>'mypage1') 
#自分が適用したい方のkaminaryのディレクトリ名を第二引数に指定(今回はmypage1を適用)
~~


これで無事適用したいkaminarimのviewファイルを
適用できた。


参考:
blog.sogakudo.com

Rails joinメソッドについて

最近Railsのタスクも振ってもらえるようになってきていて、

日々わからないことだらけですが、奮闘しております。

 

 

昨日ハマってしまったことが、テーブル結合に関することでした。

 

一覧表示の画面を作成していたんですが、

うまく関連するテーブルからデータを取得できない。。

 

 

他の箇所のコードを参照にしながら、書いてみるんですが、

ダメ。

 

 

1時間くらいハマってました。

 

 

 

そんな時に見つけたのが、joinメソッドでした。

 

 

 

モデル名.joins(関連1: :関連2)

joinメソッドの少し応用的な書き方です。
これによって、先祖、または孫テーブルのデータを
取得することができます。

関連1, 関連2

には

has_many:~~ ,  belongs_to:~~

で指定した、名前が入ります。


これで無事取得したいデータを取ってくることができました。


DBの勉強もしないとなと強く思いました、、


参考:
pikawaka.com