2012-03-08 77 views
0

我在遊戲/ show.html.erb類寫的submit_tag,它是如下:非響應submit_tag

<% form_tag game_path, :method => 'submit' do %> 
     <div class="actions"><%= submit_tag "Interested in trading", :name => 'confirm' %></div> 
<% end %> 

在我games_controllershow方法我有以下幾點:

def show 
@game = Game.find(params[:id]) 


if params['confirm'] 
    respond_to do |format| 
    user = @game.user 
    email = user.email 
    g = GameTrade.game_interest(user) 
    g.deliver 
    format.html { redirect_to root_url } 
    format.json { render json: @game } 
    end 
elsif 
    respond_to do |format| 
    format.html 
    end 
end 
end 

現在顯示頁面顯示正常,但當我點擊submit_tag它什麼都不做,我的意思是它已經死了,你點擊它,它不會做任何事情。只是一個假人。任何想法在我的控制器邏輯中有什麼錯誤?

回答

1

問題是你的看法,而不是你的控制器。

提交標籤必須在表格內。當你點擊它時,他們提交表單 - 沒有包含表單,提交標記完全沒用。

如果您只需要一個可導致某處的按鈕,請嘗試檢出button_to:它將創建一個提交標記和一個指向您指定的任何操作的表單。

+0

我明白了。所以上述聲明將以一種形式包裝。它會是一個簡單的<%form_tag do%> ..... <% end %>還是比它有更大的邏輯? – user1222136 2012-03-08 02:01:20

+0

嘿,我已經更新了我的帖子,上面寫了我寫的內容(根據我的知識,不知道它是否正確),但現在按鈕已經完全消失。 – user1222136 2012-03-08 02:17:23

+0

是的,這不是正確的語法。你想要:''<%= form_tag ...%>'''確保在那裏獲得等號,否則沒有任何輸出會出現在視圖中。 – Veraticus 2012-03-08 16:49:54