2015-12-10 36 views
0

我在幾個關聯中使用註釋模型到其他模型。關係總是相同的:評論「屬於」另一個模型的項目,而其他模型「有很多」評論。如何檢查表單在Rails上提交的頁面?

我呈現在其它型號的顯示頁面的評論形式,像這樣:

<%= render "comments/form" %> 

當用戶點擊提交按鈕,我想他被重定向到不同的頁面,這取決於頁他在之前。當我尋找一個解決方案,我發現通過APIdock(參見http://apidock.com/rails/v4.2.1/ActionView/Helpers/UrlHelper/current_page%3F)的current_page?助手的ActionView並認爲這是使用它的評論控制器這樣一個好主意:

respond_to do |format| 
    if (@comment.save) && (current_page?(controller: 'game', action: 'show')) 
    format.html { redirect_to game_comments_url, notice: 'Comment was successfully created.' } 
    format.json { render :show, status: :created, location: @comment } 
    elsif (@comment.save) && (current_page?(controller: 'comment')) 
    format.html { redirect_to @comment, notice: 'Comment was successfully created.' } 
    format.json { render :show, status: :created, location: @comment } 
    else 
    format.html { render :new } 
    format.json { render json: @comment.errors, status: :unprocessable_entity } 
    end 
end 

但可悲的是,我得到以下錯誤消息:

undefined method `current_page?' for #<CommentsController:0x007f67fe42e1a0> 

我將不勝感激,如果有人能送給我我如何能找到一個解決方案,在該頁面已提交一個特定的形式,或至少在如何將用戶重定向到不同的頁面,然後方式。

回答

1

current_page?是一個視圖助手,所以它在控制器中不可用。

您可以通過控制器中的request.referrer獲取引用網址

+0

謝謝您的提示。我該如何調試該方法向我顯示的結果?我改變了我的代碼:'if(@ comment.save)&&(URI(request.referer).path =='/ games')'但是當我試用它時,它使用「else」分支,而不是因爲結果不合適。 –

+0

您可以嘗試在控制器中添加'puts URI(request.referer).path',然後查看終端中的確切路徑 – richfisher

相關問題