我來自一個PHP的背景時遇到很多麻煩了解如何處理軌處理後,得到請求數據等Ruby on Rails的處理的URL參數
我有一個超鏈接,我讓它去
http:/localhost/clients/1/?office_id=2
在我的控制,我在我看來試圖
def show
@office_id=params[:office_id]
end
我只是想顯示該變量
@office_id
但它沒有顯示任何東西。我的超鏈接是不正確的還是我缺少其他東西?
我來自一個PHP的背景時遇到很多麻煩了解如何處理軌處理後,得到請求數據等Ruby on Rails的處理的URL參數
我有一個超鏈接,我讓它去
http:/localhost/clients/1/?office_id=2
在我的控制,我在我看來試圖
def show
@office_id=params[:office_id]
end
我只是想顯示該變量
@office_id
但它沒有顯示任何東西。我的超鏈接是不正確的還是我缺少其他東西?
我道歉。在我看來,我顯示爲:
- @office_id
我沒有意識到上述只是評估它,並沒有顯示它。
將其更改爲
= @office_id
使它工作。
使用http:/ localhost/clients/1?office_id = 2,沒有最後/在你的網址。正如Benjamin所說的那樣,看看你的日誌文件,看看參數是否通過你的控制器方法。如果不是,那麼你還有其他事情正在進行。
我測試過'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
好的。那麼,您視圖中的代碼是什麼樣的? – portlandrock 2013-02-28 22:01:30
在我的?我沒有任何看法,我只是調用了我的JSON-only REST-API的URL;)。但對於Rails來說,這並沒有什麼區別。 – 2013-02-28 22:02:30
你的控制器:
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
給我們查看代碼。它應該看起來像'<%= @office_id%>',對吧?順便說一句:如果你點擊鏈接:看看控制檯,它會告訴你它收到了哪些參數。 – 2013-02-28 21:48:40
你的控制檯會顯示'Processing by ClientsController#show',下一行:'參數:{「id」=>「1」,「office_id」=>「2」}(或者沒有'office_id' ,但我很確定它在那裏) – 2013-02-28 21:59:29