2015-09-07 39 views
0

嗨,我是新來的RoR,我正在做一個簡單的math_app。附加功能正常工作。現在我試圖做一個簡單的減法。減法控制器被調用並顯示減法形式,但是當我點擊減去add控制器被調用並且執行加法。我哪裏錯了?如何將特定的控制器動作路由到軌道中的特定形式?

這是我routes.rb

Rails.application.routes.draw do 
    get 'subtract/form' 

    post 'subtract/result' 

    get 'add/form' 

    post 'add/result' 
end 

result.html.erb

<%= @first %> - <%= @second %> = <%= @result %> 
<br/> 
<%= link_to 'back', subtract_form_path %> 

form.html.erb:(這是減法形式)

<%= form_tag subtract_result_path do %> 
    <%= number_field_tag :first %> 
- 
    <%= number_field_tag :second %> 
    <%= submit_tag "subtract" %> 
<% end %> 

subtract_controller.rb

class SubtractController < ApplicationController 
    def form 
    end 

    def result 
     @first = params[:first].to_i 
     @second = params[:second].to_i 
     @result = @first - @second 
    end 
end 
+0

對我來說,它看起來精細。你能告訴我們實際的減法表單的樣子嗎?查看HTML頁面的源代碼並將其粘貼到某處。 – dimakura

+0

-
coder0110

+0

那是HTML源代碼的一部分....表單動作顯示添加/結果...我如何改變這一點? – coder0110

回答

0

您有views/substract/form.html.erb的問題。它現在讀取:

<%= form_tag add_result_path do %> 
    <%= number_field_tag :first %> 
- 
    <%= number_field_tag :second %> 
    <%= submit_tag "subtract" %> 
<% end %> 

但它應該是:

<%= form_tag substract_result_path do %> 
    <%= number_field_tag :first %> 
- 
    <%= number_field_tag :second %> 
    <%= submit_tag "subtract" %> 
<% end %> 

你或許應該也解決途徑

post '/subtract/result' => 'subtract#result', as: 'substract_result' 

而且在views/substract/result.html.erb

<%= @first %> - <%= @second %> = <%= @result %> 
<br/> 
<%= link_to 'back', subtract_form_path %> 
+0

它仍然無法工作。當我點擊減去它仍然去添加結果頁面 – coder0110

+0

https://bitbucket.org/coder_0110/math_app – coder0110

+0

我已經更新了我的答案。現在它應該工作 – dimakura

相關問題