ラベル Rails の投稿を表示しています。 すべての投稿を表示
ラベル Rails の投稿を表示しています。 すべての投稿を表示

2013/02/11

syntax error, unexpected '\n', expecting tCOLON2 or '[' or '.'

急にdb:migrateしようとしたら怒られる様になった。
20130211061203_create_settings.rbを見ても特に普段と変わらない様子。

$rake db:migrate
rake aborted!
/Users/komuro/rails-demo/db/migrate/20130211061203_create_settings.rb:4: syntax error, unexpected '\n', expecting tCOLON2 or '[' or '.'

何だろうと思ったらどうやら
$ rails generate scaffold Setting accesskey:string, secretkey:string
設定のカンマ(,)がいらなかったようです。

そのような場合は一度作成した一式を削除しましょう。

$ rails destroy scaffold Setting
それから再度カンマ無しで作成。

$ rails generate scaffold Setting accesskey:string secretkey:string


--
english
--

Suddenly, db:migrate gave me a error (see below)
20130211061203_create_settings.rb doesn't look so strange from path..hmmm

$rake db:migrate
rake aborted!
/Users/komuro/rails-demo/db/migrate/20130211061203_create_settings.rb:4: syntax error, unexpected '\n', expecting tCOLON2 or '[' or '.'

I googled and found out that I typed comma when I generate scaffold.
$ rails generate scaffold Setting accesskey:stringsecretkey:string
No comma!

If you type it with comma, delete scaffold first.
$ rails destroy scaffold Setting
Then type again w/o comma.
$ rails generate scaffold Setting accesskey:string secretkey:string


SECURITY WARNING: No secret option provided to Rack::Session::Cookie と出たら


Rails関連で何かコマンドを打つと以下の様に出るようになった。

SECURITY WARNING: No secret option provided to Rack::Session::Cookie.
        This poses a security threat. It is strongly recommended that you
        provide a secret to prevent exploits that may be possible from crafted
        cookies. This will not be supported in future versions of Rack, and
        future versions will even invalidate your existing user cookies.

調べてみたら以下のissueで議論されていた。


2013年1月に出た3.2.11で対応したもよう。


一度Rails/rackをアップデートするといいかもしれない。

$ gem list --local
で確認して、アップデートの必要があれば
$ gem update rails
とか
$ gem update rack
とかする

2013/01/05

[Rails] 新しく追加したmethodのrouter設定

通常のscaffoldだと
 
class ProjectsController < ApplicationController 
  def index
  def edit
  def new
  def show
  def delete
のmethodが追加されるが、新しくmethod追加された場合
 
class ProjectsController < ApplicationController 
  def summary #新しく追加した
config/router.rbに追加してあげる必要がある
 
WebTest::Application.routes.draw do
  resources :projects do
    collection do                                                                                                                         
      get 'summary'
    end
  end
これだと/projects/summaryとして使える 特定のレコードに対して新たに処理を追加したい場合はこうする
WebTest::Application.routes.draw do
  resources :projects do
    member do                                                                                                                         
      get 'summary'
    end
  end
こうすると/projects/1/summaryとして使える