2014-03-19 27 views
0

我有兩個文件叫做list.html.erbregister.html.erb如何獲得鏈接標籤的工作?

我點擊了鏈接

<%= link_to 'Lists',posts_list_path %> 

,但我沒有得到任何迴應。點擊鏈接後,我預計會去list.html.erb頁面。

的routes.rb:

resources :posts 
post '/posts/list',:controller=>'posts',:action=>'list' 
post '/posts/register',:controller=>'posts',:action=>'register' 

register.html.erb:

<h1>Welcome#index</h1> 
<%= link_to 'Lists',posts_list_path %> 

Started GET "/posts/list" for 127.0.0.1 at 2014-03-20 00:08:27 +0530 
Processing by PostsController#show as HTML Parameters: {"id"=>"list"} 
Rendered posts/register.html.erb within layouts/application (1.0ms) 
Completed 200 OK in 106ms (Views: 88.0ms | ActiveRecord: 0.0ms) [2014-03-20 00:08:27] 
WARN Could not determine content-length of response body. 
Set content-length of the response or set Response#chunked = true 
+1

檢查你的日誌。是否調用了正確的操作?你看到任何錯誤?你的行動輸出了什麼?除非您給我們提供更多信息,否則我們無法幫助您。 – meagar

+0

爲什麼你編輯你的問題? –

+0

我沒有得到list.html.erb page.i得到了相同的頁面(register.html.erb) – user3279260

回答

0

的路徑更改爲

get '/posts/list',:controller=>'posts',:action=>'list' 
get '/posts/register',:controller=>'posts',:action=>'register' 
resources :posts 

當您點擊<%= link_to 'Lists',posts_list_path %>鏈接 link_to將發送一個GET請求作爲posts/list。 這就是爲什麼你需要一個GET請求,而不是POST。

而且,兩個額外get路線應前resources :posts其他 的Rails將其映射到

GET /posts/:id(.:format) posts#show 

如果您檢查日誌,你會發現,該請求是要PostsController#show。 Rails只會引導你到第一個匹配的路線。在resources :posts之前添加額外的get路由,以便正確映射路由。

+0

謝謝you.but直到我得到相同的錯誤 – user3279260

+0

共享您在問題中'routes.rb'進行更改後生成的服務器日誌。 –

+0

開始GET「/ posts/list」爲127.0.0.1於2014-03-20 00:35:01 +0530 通過PostsController處理#顯示爲HTML 參數:{「id」=>「list」} 已呈現的帖子/var/home.deb在佈局/應用程序中(0.0ms) 在64ms中完成200 OK(查看:62.0ms |活動記錄:0.0ms) [2014-03-20 00:35:01] WARN無法確定內容 - 響應主體的長度。 設置響應的內容長度或設置響應#chunked = true – user3279260

0

你正在做的是做一個POST請求通過link_to。如果你真的想這樣做,link_to應該是:

<%= link_to 'Lists',posts_list_path,method: :post %>