2011-07-28 35 views
0

我正在使用Rails 3,並且無法將查詢字符串插入鏈接。Ruby on Rails查詢字符串不工作

我有一個帖子表,每個帖子都有評論。在帖子索引頁面上,我有每條評論都有一個鏈接,指向評論的「回覆」。我想在「回覆」鏈接中插入一個查詢字符串...但它不起作用。我正在使用的行看起來像這樣。

<%= link_to 'Reply', comment.post, :reply => "@"+comment.commenter+":" if !viewing_post? %> 

此鏈接顯示帖子和評論表單很好,但查詢字符串永遠不會進入url。這是爲什麼發生?

+0

我不明白這個問題。更確切地說,我不明白你如何期望回覆看起來像 – apneadiving

+0

這個鏈接的重點是看起來像「.../posts/1?reply = @ commentmen:」 這不發生,我不明白爲什麼。 – Will

+0

'comment.post'是一個有效的網址?你確定你的'!viewing_post'條件? – apneadiving

回答

3

它不起作用,因爲link_to不負責該網址。 link_to只管理標籤。你需要在URL中指定參數,您可以通過使用命名路由創建參數的URL /路徑:

resources :posts do 
    resources :comments 
end 

那麼你可以添加參數:

在你的routes.rb像創建一個名爲路線像:

<%= 
    link_to 
     'Reply', 
     post_comment_path(
      comment.post, 
      comment, 
      :reply => !viewing_post? ? "@"+comment.commenter+":" : nil 
     ) 
%> 

這將導致:

<a href="comments/:comment_id/posts/:[email protected]_commenter_is:">Reply</a> 

更多的相關信息在:http://guides.rubyonrails.org/routing.html

西蒙

+0

這正是我所需要的!我有路由設置,我只是困惑如何把答覆字符串在那裏。謝謝! – Will

0

comment.post是從中可以得出一個路徑的資源,這樣就可以不通過任何額外的GetData - 所以爲了追加一個查詢字符串的URL,你必須做到以下幾點:

<%= link_to "whatever",some_real_path(resource,:reply => "@dude7331")%>