読者です 読者をやめる 読者になる 読者になる

geekday’s diary

超絶初心者のエンジニアがいろいろなプログラミング言語に挑戦してみるブログです。

SQLite managerを導入してみた。

Ruby on Railsで、DBはSQLiteを利用しているが、

DBの状態をみるときに、いちいちコマンドでやらなきゃいけないのか・・とゲンナリ。

phpMyadmin的なツールがないかなー、と思って探してたらあった。

d.hatena.ne.jp

 

上記のサイトをみると、シンプルながらいい感じ!

こういうのを探してたんだよね、と思いさっそく導入。

・・・といっても、Firefoxのアドオンをいれて、ツール>SQLiteManagerを起動 で簡単に立ち上がった。

DBの接続だけ、db>development.sqlite3 を読み込ませれば、ローカル環境のDB状態がサクッとみられるように。

ストレスが一気に軽減した・・!

 

Ruby on Railsで特定ページのみCSS,JavaScriptを読み込ませる

以前記載した件の続きのような話になるがメモ。

Railsで特定ページのみ指定のCSSJavaScriptを読み込ませたい場合はrequire_freeをコメントアウトするが、その続き。

 

keruuweb.com

上記のページが極めてわかりやすかったので参考にする。

ここでいうstep1は上述のrequire_freeなのでとばし、step2から着手する。

config/initializers/assets.rb 

内に、指定のJSファイルをプリコンパイル対象に含める以下記述を行う。

Rails.application.config.assets.precompile += %w( tops/*.js ) 

※ここでは、assest/JavaScript直下にtopsフォルダを作製、その中のjsファイルは全てプリコンパイル対象としている。なお、用意したファイルはtop.jsの1ファイル。

 

そのあとで、view側には以下を記載する。

<%= javascript_include_tag "tops.js" %>

 

これでめでたくJSファイルを読み込むことができた。もしできない場合は一旦サーバを再起動してみるとよいかもしれない。

cssも同様で、assetsファイルに

Rails.application.config.assets.precompile += %w( tops.css )

 と記述。

view側には

<%= stylesheet_link_tag "tops", :media => "all" %>

と記載。これで無事読み込まれることになる。

なお、環境によって違うのかもしれないが、自分のローカル環境ではcss読み込みの際に再度サーバを立ち上げてくださいとエラーが出てきたので(develop環境でも必要・・?)その通りに従って再起動した結果、無事出来た。

 

余談だが、今回cssをいじったついでに画像ファイルの読み込みも行ったのだが、railsの場合画像パスがassets/image内であっても、assets/画像ファイル名(フォルダでまとめている場合はassets/フォルダ名/画像ファイル名)とする必要があってちょっと戸惑った。

 

 

Ruby on Railsにbootstrapを入れてみる

view側をいい感じにできる自信が皆無だったので、bootstrapを導入してtwitter風のいい感じのデザインにしたいと思い入れてみたのでメモ。

 

www.sejuku.net

 

これをみながら取り掛かる。

scssで取り扱いたかったので、

gemファイルに以下を記述。

gem 'bootstrap-sass'

で、bundle install でbootstrapを入れる。

その後、application.scssにて

@import "bootstrap-sprockets";

@import "bootstrap";

を記載。忘れずに例の*=require_trueなどは消しておく。

そして、application.jsに

//= require jquery
//= require bootstrap-sprockets 

を記載。これで一旦サーバを立ち上げてみると・・

謎のsyntaxエラーが起きていた・・・。

File to import not found or unreadable: bootstrap-sprockets. 

 

発生箇所はapplication.scss。どうやら、 bootstrap-sprocketsが見つからずimportできませんというエラーになっている模様。

おかしいな、と思いもう一度 $ bundle installをしてみると・・

なんと入っていない!!

あれ、gemファイルに記載したよな・・と思って見てみると・・gemにもない!

 

よく調べてみると、自分が書いたのはワークスペース直下のgemfileだった。

プロジェクトフォルダ直下にもgemファイルがあり、そこに書き込むことで

ちゃんとinstallでき、エラーは消え、ボタンはbootstrap風に表示が変わった。

 

ただのケアレスミスでした。。

 

 

 

 

 

application.cssのrequire_tree にハマった話

ハマったのでメモ。

development環境でview側をいじろうと思い、

 

<%= stylesheet_link_tag "test", :media => "all" %>

でstylesheets直下に置いた任意のtest.cssを読み込ませた時の話。

色々とがちゃがちゃいじったのだが、結局一旦test.cssは外そうと思い上記のタグを消したら、なぜか変化なしだった。

 

ターミナルをみるとEnviroment:developmentとなっており、

あれ、development環境でもプリコンパイルっているんだっけ?とか思いつつ、

下記のサイトも見ながらrakeコマンドを叩くも、やっぱり変わらず。。

RailsでCSS(スタイルシート)を読み込みたい | Ruby on Railsサービス開発逆引き辞典

 

おかしいな、と思いソースコード表示で確認してみると・・

しっかりtest.cssを読み込んでいる・・!

というか、全てのscss・cssファイルを読み込んでいるではないか!

 

なんで??とぐぐってみると、どうやら以下が原因のようだった。

beautifulajax.dip.jp

 

デフォルトで読み込まれるapplication.cssに、

require_tree = 全scss・cssファイル読み込みしまっせ、というとんでもない処理が書かれているのだ。

しかも一見コメントアウトされてるっぽい風に見えるところがまたなんとも言えない・・。

削除したら、無事指定した分だけのcssが読み込まれるようになりました。

とんだ落とし穴だな・・。

 

 

 

 

Ruby on Railsでモデルの作成をしてみる

掲題の件、まずはdevelopment.sqlite3の作成から。

$ rake db:create

のコマンドで作成。rakeコマンドは、

Rake - - Railsドキュメント

上記のサイトで細かく解説されている。

その後、モデルの作成をするため、

$ rails g model モデル名 カラム名:型...

で作成。

実行すると、

app/models直下に、モデル名.rbが、

そしてdb/migrate直下に、マイグレーションファイルが作成される。

マイグレーションを実行するため、

$ rake db:migrate

を実行。

ちなみに、マイグレーションとは

www.rubylife.jp

このサイトがわかりやすかったが、ようはMySQLでいうcreate table~の内容が書かれたスクリプトファイルを実行し、テーブルを作成するもの。

このコマンドはそんなマイグレーションを実行するわけだが、処理の流れとしてはRailsドキュメントのサイトにあるように、テーブルを調べた上で、なければ実行をするというものになっている。

 

これで、実際にテーブルが作成され、データ投入ができる状態になる。

 

 

エディタって結局何がいいの?

番外編。独り言程度のメモ。

コーディングをするうえでエディタは重要。
昔仕事でPHPを使っていた時はZendFramework+Eclipseで書いていたので、
肌になじんでいるのはEclipseだったけど、自宅のPCをMacbook proに変えた時点でエディタはAtomを使うようになった。

 

eng-entrance.com


AtomcakePHPを書いたことがあり、まあ特にそんなに違和感はなかったが、
今進めているRuby on Railsの開発にあたり、ちょっと変えてみようかと思って探してみたら以下があった。

sublimecodeintel.github.io

なにやらよさげで、調べてみたらなんと定義ジャンプがあるではないか。

qiita.com

これ、Eclipseの時すごい使ったんだよなぁ。
ってことで、時間があったら早速使ってみようと思う。

 

※後日、使ってみたら神エディタだった。。

sweep3092.hatenablog.com

ここに書いてある機能、すげえ。。

Ruby on RailsにてGETメソッドで渡されたパラメータを受け取ってみる

前回、Ruby on Railsの開発環境が整ったので、今回は一歩進んでみる。

コントローラー側でパラメータを取得したい時の話。

www.rubylife.jp

 

上記のサイトを参考に、いわゆるGETメソッドをイメージして、簡単なアクションをコントローラー側に書いてみる。

 

$ rails s でローカルサーバを立ち上げて

http://localhost:3000 が起動したことを確認し、

まずはルーティングの設定を行う。

config>routes.rb 内に以下を追記。

get 'users/show/:username' => 'users#show'

こうすることにより、

http://localhost:3000/users/show/パラメータ名(username

の形で値が渡された時に、userコントローラー内のdef show内でパラメータが受け取れるようになる。

この場合、params[:パラメータ名]でコントローラ側は、受け取れるようになるため、

@test = params[:username]

と記載しておけば変数test内に取得したパラメータの値が代入され、中身の確認もできた。

今回はGETでやったけど、POSTもそんなに変わらずできるっぽいので明日以降でテストしてみたいと思う。