2013-08-20 53 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”。 –