在RhoMobile上访问Ruby参数时出现问题



我是Ruby的新手,请原谅我的无知。我真的不知道该怎么表达这个问题,所以这可能也是我在网上找不到答案的部分原因。

我正在与Rho Elements合作,我正试图将一些内容从一个页面传递到另一个页面。我取得了一些不错的进展,但遇到了一些我不理解的事情。我可以通过这样的身份证

<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"=>"{13111321443313.17}"}由eclipse显示,当我进入变量"id"时,会显示。

为什么我可以看到我想用来获取刚刚创建的订单详细信息的ID,但实际变量也是空的?

**编辑:这是我想传递的信息。

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

在控制器中使用params,而不是@params。访问密钥的规范形式也是params[:id]

就像前面的回答一样,您可以通过这种方式访问控制器中的参数

@id = params[:id]

此外,如果您使用的是Rails3或更高版本,您可能希望使用新的url。这种方式不那么冗长,因此更易于阅读。

newpage_controllername_url(:id => @id)

您也可以使用此方法询问路径。

如果你不知道你是否通过了参数,你可以使用显示内容

params.inspect

您可以使用inspect 查看任何对象的内容

相关内容

  • 没有找到相关文章