2013-08-20 181 views
-1

我接管了其他人的Rails項目,並且對HTTP請求有個疑問。HTTP請求 - Ruby on Rails

它似乎我應該能夠通過HTTP請求傳遞參數,我只是不確定如何。例如:rake routes顯示

PUT /auction2s/:id(.:format)      auction2s#update 

這似乎符合這個功能

# PUT /auction2s/1 
    # PUT /auction2s/1.json 
    def update 
    @auction2 = Auction2.find(params[:id]) 
    print "Hello World" 
    respond_to do |format| 
     if @auction2.update_attributes(params[:auction2]) 
     format.html { redirect_to @auction2, notice: 'Auction2 was successfully updated.' } 
     format.json { head :no_content } 
     else 
     format.html { render action: "edit" } 
     format.json { render json: @auction2.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

但我想不出我需要傳遞給,比如URL,改變

id=18445&done=true 

進入該功能。

有什麼想法?功能結構是否正確?我只需要以Ruby格式傳遞請求,而不是通過瀏覽器或AJAX(我正在嘗試)?

+0

首先,你的'routes'文件說'PUT' req被設置爲'auction1s',你提到的代碼是關於'auction2s'的? –

+2

@NeerajT太好了。他的編輯可能會讓你免於失去所有的代表權:http://stackoverflow.com/help/whats-reputation(請參閱「你失去聲望時」部分的#5)。編程問題可能會令人沮喪,但它通常是一個好主意(閱讀:對你有利),讓你的問題不受挫折。 –

+0

我的錯 - 我只是想讓你們明白我真的失去了什麼,所以當我構建它的時候,我不會假設我是如何構造事物的。 –

回答

0

您應該爲此操作提供表單。最有可能在這個位置 - >app/views/auction1s/edit.html.erb。如果您使用haml模板引擎,它將是edit.html.haml。表單將在視圖中呈現,用戶輸入將作爲參數發送給表單提交時的此操作。

+0

是的,先生 - 我在那裏有一個編輯窗體,但我想要做的是從另一個視圖渲染更改 - IE應用程序/視圖呈現所有auction2s(抱歉,我有一個1s在那裏,這是另一個MVC結構)。 –

+0

然後,您將不得不在'edit'操作中明確呈現該視圖。 'render:template =>「auction2s/<模板名稱>」' – usha

+0

對,但那隻會渲染模板 - 我實際上是想發送放置請求。對於更多的上下文,這是一個複選框,每次單擊該複選框時,我都想將此布爾值更改爲「true」或「false」。 –