0

我来自一个PHP的背景时遇到很多麻烦了解如何处理轨处理后,得到请求数据等Ruby on Rails的处理的URL参数

我有一个超链接,我让它去

http:/localhost/clients/1/?office_id=2 

在我的控制,我在我看来试图

def show 
    @office_id=params[:office_id] 
end 

我只是想显示该变量

@office_id 

但它没有显示任何东西。我的超链接是不正确的还是我缺少其他东西?

+1

给我们查看代码。它应该看起来像'<%= @office_id%>',对吧?顺便说一句:如果你点击链接:看看控制台,它会告诉你它收到了哪些参数。 – 2013-02-28 21:48:40

+0

你的控制台会显示'Processing by ClientsController#show',下一行:'参数:{“id”=>“1”,“office_id”=>“2”}(或者没有'office_id' ,但我很确定它在那里) – 2013-02-28 21:59:29

回答

2

我道歉。在我看来,我显示为:

- @office_id 

我没有意识到上述只是评估它,并没有显示它。

将其更改为

= @office_id 

使它工作。

0

使用http:/ localhost/clients/1?office_id = 2,没有最后/在你的网址。正如Benjamin所说的那样,看看你的日志文件,看看参数是否通过你的控制器方法。如果不是,那么你还有其他事情正在进行。

+0

我测试过'http://127.0.0.1:3000/my_controller/2 /?abc = 4'。并得到:'参数:{“abc”=>“4”,“id”=>“2”}'。所以这不应该是问题。我在Rails 3.2.12 btw。 – 2013-02-28 21:56:42

+0

好的。那么,您视图中的代码是什么样的? – portlandrock 2013-02-28 22:01:30

+0

在我的?我没有任何看法,我只是调用了我的JSON-only REST-API的URL;)。但对于Rails来说,这并没有什么区别。 – 2013-02-28 22:02:30

1

你的控制器:

def show 
    # assuming you have an Office object.. 
    @office = Office.find(params[:office_id]) 
end 

然后在您的视图:

= @office.attribute # or if you just want to display its ID then : @office.id