(メモ)Rails4 でレイアウトを使ってみた
が、仕組みがよくわからなかったのであとで調べる。
ナビバーとフッターをレイアウト化したい。
Railsでアプリケーションを作成したいたが、初めてのこともあり、
わりとダラダラ書いてしまったコードが多く、DIYの理念に反していたので
タイミングを見計らって綺麗にすることにした。
そんなわけで手始めにナビバーとフッターを共通部品にして埋め込みたい。
環境
Rails4
CentOS6.7
slim使用
書き方が???
レイアウトに重複している部分だけ引っこ抜いて別名で保存。
場所は view/layouts/_footer.html.slim
これを呼び出す方法は、といろいろ調べてみたが、
ざっと
- content_for :footer, render('layouts/footer') - render :partial => "layouts/footer" = render('layouts/footer') = yield :footer
の書き方があった。
違いが判らなかったのであとで調べるが、
とりあえず
= render('layouts/footer')
だけうまくいった。
追記:
色々呼び出し方法があるのでちゃんと覚える。
render :partial
部分テンプレートを呼び出す
render :partial => "部分テンプレート名"
yield
コントローラで処理された内容を埋め込む先を指定する。
radio_buttonのcheckedの位置を可変にする
DBで登録した内容を画面に表示するって結構あると思うので
忘れないうちにメモ。
Controller
DBの結果fooを変数にセット
@display=({"hoge"=>result["foo"]}) # 0 or 1 or2
View
booleanで判定できるらしいのでeqlで判定させたらとりあえずうまくいった。
方法として合っているかどうかはわかりませんが。。。
.radio label.style = radio_button("hogeGroup", "hoge", "0", :checked=> @display["hoge"].eql?("0")) | test1 label.style = radio_button("hogeGroup", "hoge", "1", :checked=> @display["hoge"].eql?("1")) | test2 label.style = radio_button("hogeGroup", "hoge", "2", :checked=> @display["hoge"].eql?("2")) | test3
Ruby on Rails上でアイコンフォント(glyicons)が表示されない
ので調べた結果をまとめる。
- ファイルはvendor/assetsの下に置く
アプリケーション名/vendor/assets/fonts
の下に
glyphicons-halflings-regular.eot glyphicons-halflings-regular.svg glyphicons-halflings-regular.ttf glyphicons-halflings-regular.woff
を置く。
- pathとプリコンパイルの設定。
Assets Pipelineのパス指定でプリコンパイルの対象に入れないと読み込んでくれないようなので
下記のファイルに記述を追加
# config/application.rb config.assets.precompile += %w(*.eot *.svg *.ttf *.woff) config.assets.paths << "#{Rails}/vendor/assets/fonts"
- css内のパスも指定
上記の二つだけでできなかったのでcss側も記載したらできた。
アプリケーション名/app/assets/stylesheetsの配下にあるCSSに記述
@font-face { font-family: 'Glyphicons Halflings'; src: url('/assets/glyphicons-halflings-regular.eot'); src: url('/assets/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('/assets/glyphicons-halflings-regular.woff') format('woff'), url('/assets/glyphicons-halflings-regular.ttf') format('truetype'), url('/assets/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg'); }
CentOS6.7でsudoが使えなかったので使えるように変更した件
CentOS6.7入れたらsudoがユーザに効かないようになっていたので変更してみたときのメモ。
usermod -G グループ名 ユーザ名
Gのあとにグループ名をコンマでつなげて複数グループに所属ということもできる。
今回はrootと同じレベルのグループ「wheel」(ubuntuの場合はsudo)に所属することで、
sudoコマンドがでできるようになる。
usermod -G wheel hoge
これでhogeもsudoできるぞ!と思ったらまだ出来ない。
sudoers ファイル内にありません。この事象は記録・報告されます。
sudoers ファイルを見たら
コメントアウトになっている。
## Allows people in group wheel to run all commands # %wheel ALL=(ALL) ALL
グループ指定できないようになってるけど、使いたいのでコメント外して再度コマンド実行。
VM上で立ち上げたローカルホストをホストから見る方法
環境
ホスト:Windows8 64bit
ゲスト:(VirtualBox) CentOS6.7, Ruby on Rails
やりたいこと:
ゲストOSのRails上でlocalhostを立ち上げ、
ホストOSのブラウザで確認する。
手順:
VirtualBoxにネットワーク設定を2つ用意しておく。
① ブリッジアダプター
→ ゲストOSがホストOSと同じネットワークを使用するので、ゲスト側が外と繋がるために必要。
② ホストオンリー アダプター
→ ホストとゲストの間で通信する(外部に出ない通信)。
もしホストオンリーアダプターが立ち上がらなかったら、
コントロールパネル→ネットワークでvirtualboxのネットワークのプロパティを開き、NISC6が無効化(チェックなし)だったらチェックを入れて有効化する。
次にゲストOSを立ち上げてIPアドレスを確認。
ifconfig
eth1のアドレスをメモる。
恐らくローカルとグローバルアドレスとホスト通信の3つあると思われるが、
192.168.x.xのアドレスを使用する。
次にiptablesの設定を行い、ゲストOSのポートを開ける。
sudo vi /etc/sysconfig/iptables
Railsのサーバ(Webrick)の場合、3000番ポートを使用するので、3000番を開ける。
-A INPUT -p tcp -m tcp --dport 3000 -j ACCEPT
変更したら更新内容を反映させる。
iptables restart
次にwebrickを立ち上げる。
※事前にアプリがあると仮定
rails s -b 0.0.0.0
これでゲスト側はオッケー。
次にホストのブラウザを立ち上げ、最初に調べたIPアドレス:ポートを指定する。
確認できたらオッケー。
番外編:
FTPクライアントも入れたいという場合には、ここまでくれば設定はすぐできる。
たとえば、WinSCPの場合、設定のホスト名にゲスト側のIPアドレス、SFTPにしてゲストのユーザーでログインすればオッケー。