顯示具有 rails 標籤的文章。 顯示所有文章
顯示具有 rails 標籤的文章。 顯示所有文章

2015年11月16日 星期一

透過 Javascript 存取 cookie 的方法 (用 rails 的話超簡單!)

透過 Javascript 存取 cookie 的方法 (用 rails 的話超簡單!)

今天我是一個 rails 的使用者,請教 google 大神到底要怎麼在 javascript 存取 cookie,goo 了很久,一堆人都說阿就 $.cookie('name'),看起來是 jQuery 的東西,我也在 rails 中裝了 jQuery 但就是顯示 $.cookie is not a function

後來才發現,幹原來是要另外裝 jquery-cookie 才能用。然後這個 project 還搬家變成 js-cookie 了,看名字應該是擺脫 jQuery 的束縛了。

如果是 rails 的話直接用 gem 裝 jquery-cookie-railsjs_cookie_rails 就可以了。用後者的話基本上就是在 Gemfile 加上

gem 'js_cookie_rails'

然後 bundle install 再去 app/assets/javascripts/application.js 裡面加上

//= require js.cookie

就可以開始用他的指令去存取 cookie 了,下面簡單的介紹基本的,要注意的是生命期限預設單位是天。

// 設定 cookie
Cookies.set('name', 'value');

// 設定 cookie 生命期限 7 天
Cookies.set('name', 'value', { expires: 7 });

// 設定 cookie 生命期限 30 秒
var date = new Date();
date.setTime( date.getTime() + ( 30 * 1000 ));
$.cookie( "hoge", "30 seconds", { expires: date });

// 取得 cookie,若無此 cookie 會回傳 null
Cookies.get('name');

// 刪除 cookie
Cookies.remove('name');

Reference
jquery.cookie.jsの使い方とCOOKIEの寿命(保存期間)を秒・分・時間で指定する方法

Written with StackEdit.

2015年11月14日 星期六

使用 Dockerfile 安裝 rails 心得

使用 Dockerfile 安裝 rails 心得

最近又再次來碰碰 rails,因為不會 linux 所以覺得光是安裝開發環境就很痛苦,用 vm 做一個開發環境的保存覺得太肥大了,所以來試試看紅很久的 docker

不管是 rails、linux 還是 docker 我都是菜鳥,光是要完成這份 dockerfile 就花了好幾天的時間,遇到的問題有很多

  • 以為 CMDRUN 是差不多的東西

    看官方的說明,以為 CMD 可以真的執行指令,結果只是在 container 運行後自動執行的指令

  • 用 root 跟用 user 路徑會不同

    一開始都直接用 root 去安裝設定東西,但這樣一來跟網路上教學文章所教的路徑就都不一樣了,沒辦法,我就不會 linux 只好建一個 user 來繼續

  • 在 docker 中用 rvm 安裝 ruby 2.2.3 會無法安裝 rails 4.2.0

    真的找不到原因,只好改用 rbenv 惹

  • 在 dockerfile 中一直無法使用 rbenv、gem 等程式,但是實際進入 container 就可以

    一直覺得是這些東西沒有被 include 的感覺,試了很久真的跟我想的一樣,每次的 RUN 貌似都是用不同的 bash 去執行,也就是說設定的變數並不會保留到下一次的 RUN,所以呢,每次的 RUN 都要把要用到的東西的 PATH 寫進去

以下就是我這次的 rails 環境,也不知道要用什麼 base 就用 ubuntu 了

# === Reference ===
# Rails install tutorial: https://gorails.com/setup/ubuntu/14.04

FROM ubuntu:14.04
MAINTAINER aiueoH

RUN useradd -m railsuser && \
    echo "railsuser ALL=(ALL:ALL) NOPASSWD:ALL" >> /etc/sudoers

USER railsuser

RUN sudo apt-get update && \
    sudo apt-get install -y \
    python-software-properties \
    software-properties-common

RUN sudo add-apt-repository ppa:chris-lea/node.js && \
    sudo apt-get update && \
    sudo apt-get install -y \
    git-core \
    curl \
    zlib1g-dev \
    build-essential \
    libssl-dev \
    libreadline-dev \
    libyaml-dev \
    libsqlite3-dev \
    sqlite3 \
    libxml2-dev \
    libxslt1-dev \
    libcurl4-openssl-dev \
    libffi-dev \
    nodejs

RUN cd && \
    git clone git://github.com/sstephenson/rbenv.git .rbenv && \
    echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc && \
    echo 'eval "$(rbenv init -)"' >> ~/.bashrc && \
    exec $SHELL

RUN git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build &&\
    echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc && \
    exec $SHELL

RUN git clone https://github.com/sstephenson/rbenv-gem-rehash.git ~/.rbenv/plugins/rbenv-gem-rehash

RUN export PATH="$HOME/.rbenv/bin:$PATH" && \
    rbenv install 2.2.3 && \
    rbenv global 2.2.3

RUN echo "gem: --no-ri --no-rdoc" > ~/.gemrc && \
    export PATH="$HOME/.rbenv/shims:$HOME/.rbenv/bin:$PATH" && \
    gem install bundler && \
    gem install rails -v 4.2.0 && \
    rbenv rehash

# Dependency for ruby gem - CarrierWave
RUN sudo apt-get install -y libmagickwand-dev

USER root

拜託各位先進多多指出錯誤或不妥的地方,感謝!

Written with StackEdit.