2011-08-04 5 views
1

これはおそらく愚かな質問ですが、私はRailsについてのビデオキャストに従っています。今はコントローラで2つのビューを扱っています。私はパラメータに軽微な問題があります。Railsのparam値が空のintとして返されましたか?

<%= link_to("link", {:action => 'hello', :id => 1, :page => 11}) %> 

私のコントローラがのparamsを取ることになっている[::ページ]

ビュー1は、このような何かを持って、その後そのインスタンス変数の形式で値を返す(.to_i)intとしてそれを解析、次のように:

correct output: <%= params['page'].to_i + 1 %> <br> 
// this works alright, but I'm not using the controller 

controller output: <%= @page + 1 %> <br> 
// this throws an exception, 'nil value' | this works in the videocast 

incorrect output: <%= @page.to_i + 1 %> <br> 
// @page.to_i returns a value of 0, so it's 1 total 

はそれはとてもです:

@page = params[:page].to_i 

私の2番目のビューは、このような何かを持っています黙っているけど、私はこれで左足で始めたいとは思わない。

おかげで、 レオ

PD:私は(Windowsの場合)WEBrickに、ルビー192とRails 3を使用しています。

答えて

1

私のために働いてから奇妙なエラーの種類。ホームアクションで@pageを設定していますか?エラーが発生するのを見ることができる唯一の方法は、@ pageが設定されていないページをレンダリングするアクションを呼び出していることです。ホームアクションを貼り付けることはできますか?

+0

これは私のこんにちはの行動で得たものです:http://pastebin.com/5fvXnG2q – leopic

+1

これは簡単かもしれません。レンダリングの上に@page = params [:page] .to_iを移動します。インスタンス変数 –

+0

を設定する前に、ページをレンダリングしています。ありがとうございます! – leopic

関連する問題