Log.log(work)

いろんな作業メモ

gitで新しく増えたファイル(untracked files)のみ一括で追加する

これはべんり。

git ls-files --others --exclude-standard | xargs git add
  • ls-files → 管理しているファイルを見る
  • --others → 追跡されていないファイルの一覧を表示
  • --exclude-standard → .gitignore にマッチするファイルを含めない
  • xargs → 上記を「git add」の引数にする

(メモ)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')

だけうまくいった。



追記:

色々呼び出し方法があるのでちゃんと覚える。

content_for

レイアウトに複数のコンテンツを設定する

content_for コンテンツ名 do
  コンテンツ
end
render :partial

部分テンプレートを呼び出す

render :partial => "部分テンプレート名"
yield

コントローラで処理された内容を埋め込む先を指定する。

rubyで環境変数を取得

object ENV


環境変数をセット
※~/.bashrcに追加する場合

HOGE_URL="http://xx.xx.xx.xxx/"
source ~/.bashrc

しとけば反映される。

これをrubyで取得するには

ENV["HOGE_URL"]

で取得できる。

おまけ

別windowで作業してたら反映されなくて焦った。
同一windowで一通り実施する。

radio_buttonのcheckedの位置を可変にする

DBで登録した内容を画面に表示するって結構あると思うので
忘れないうちにメモ。

環境

Rails 4.2.5
Ruby 2.1
テンプレートはslimを使用

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)が表示されない

ので調べた結果をまとめる。


  1. ファイルはvendor/assetsの下に置く

アプリケーション名/vendor/assets/fonts
の下に

glyphicons-halflings-regular.eot
glyphicons-halflings-regular.svg
glyphicons-halflings-regular.ttf
glyphicons-halflings-regular.woff

を置く。

  1. pathとプリコンパイルの設定。

Assets Pipelineのパス指定でプリコンパイルの対象に入れないと読み込んでくれないようなので
下記のファイルに記述を追加

# config/application.rb
config.assets.precompile += %w(*.eot *.svg *.ttf *.woff)
config.assets.paths << "#{Rails}/vendor/assets/fonts"
  1. 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

グループ指定できないようになってるけど、使いたいのでコメント外して再度コマンド実行。