2

私はRubyを初めて使用するので、無知を許してください。私は本当にこの質問の言い方を知らなかったので、これは私がオンラインで答えを見つけられなかった理由の一部かもしれません。

Rho Elementsを使用していて、あるページから別のページに何かを渡そうとしています。私はいくつかの良い前進を遂げましたが、私が理解していない何かに遭遇しました。私はそのようなIDを通過することができます

<input type="hidden" name="id" value="<%= @orderdetails.object %>"/>

次にIDを取得します(IDを取得するために今これを実行するだけです)

@id = @params['id']

次に、別のページにリダイレクトします

redirect url_for(:action => :newpage, :id => @id).

これが私の問題の始まりです。アプリケーションをデバッグするとき、リダイレクトを通過して:newpageと入力します

def newpage
    @orderdetails = OrderDetails.find(@params['id'])
    if @orderdetails
      render :action => :newpage, :back => url_for(:action => :index)
    else
      redirect :action => :index
    end
end

ここで確認します

@params['id] 

これが表示されます。

@params {"id"=>"{131113212443313.17}"}  
"id"    ""  

@params {"id" => "{131113212443313.17}"}は日食で表示され、変数に割り込むと"id"""が表示されます。

作成されたばかりのorderdetailsを取得するために使用したいが、実際の変数も空にしているIDを確認できるのはなぜですか?

**編集:これは私が渡そうとしている情報です。

@params {"id"=>"131113212443313.17", "next"=>"asleftnext", "orderdetails"=>
{"AsFoundMeterRead"=>"", "AsFoundImage"=>""}}   
"id"    "131113212443313.17"    
"next"  "asleftnext"    
"orderdetails"  {"AsFoundMeterRead"=>"","AsFoundImage"=>""} 
4

2 に答える 2

2

paramsではなく、コントローラーで使用し@paramsます。また、キーにアクセスするための標準形はですparams[:id]

于 2013-02-26T20:07:46.593 に答える
0

前の回答のように、この方法でコントローラーのパラメーターにアクセスします

@id = params[:id]

また、Rails 3以降を使用している場合は、新しいURLを使用すると、冗長性が低くなり、読みやすくなります。

newpage_controllername_url(:id => @id)

この方法でパスを要求することもできます。

正しいパラメータを渡しているかどうかわからない場合は、次を使用してコンテンツを表示できます。

params.inspect

inspectを使用すると、任意のオブジェクトのコンテンツを表示できます

于 2013-02-26T20:22:44.080 に答える