【问题标题】:HTTP request - Ruby on RailsHTTP 请求 - Ruby on Rails
【发布时间】:2013-08-20 02:48:02
【问题描述】:

我接手了别人的 Rails 项目,我有一个关于 HTTP 请求的问题。

似乎我应该能够通过 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(我正在尝试)?

【问题讨论】:

  • 首先,您的routes 文件说PUT req 设置为auction1s,而您提到的代码是关于auction2s
  • @NeerajT 太好了。他的编辑可能使您免于失去所有代表:stackoverflow.com/help/whats-reputation(请参阅“您何时失去声誉”部分中的#5)。编程问题可能会令人沮丧,但通常最好不要让您遇到问题(阅读:对您有利)。
  • 我的错 - 我只是想让你们了解我真的迷失了多少,这样在我构建它时就不会有关于我如何构建事物的假设。
  • 迷失与否,你已经承担了责任,挫败感不是一件好事。请记住,SO 并不是一个未知的死水站点。许多(潜在)雇主在这个地方冲浪。您不想在这里承认挫败感;请记住,互联网永远不会忘记。我仍然可以找到我 20 多年前的贡献。 :-)
  • 感谢您的建议!我认为更重要的是不要向除了你亲密的朋友以外的人发泄一般的挫败感,这真的不是我想要做的。

标签: ruby-on-rails ruby http http-request


【解决方案1】:

您应该有一个用于此操作的表单。最有可能在这个位置 -> app/views/auction1s/edit.html.erb。如果您使用的是haml模板引擎,它将是edit.html.haml。表单将在视图中呈现,用户输入将作为参数发送到提交表单时的此操作。

【讨论】:

  • 是的,先生 - 我有一个编辑表格,但我想做的是从另一个视图呈现更改 - IE 应用程序/视图呈现所有拍卖 2(对不起,我在那里有一个 1,那是另一个 MVC 结构)。
  • 然后你必须在edit 操作中显式地呈现该视图。 render :template => "auction2s/<template name>"
  • 对,但这只会渲染模板 - 我实际上想发送 put 请求。有关更多上下文,这是一个复选框,每次单击该复选框时,我都想将此布尔值更改为“true”或“false”。
  • 例如:localhost:3000/auction2s/18445?done=false 返回参数 id=18445 和 done="false" 但作为 GET 请求,而不是 put 请求
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-02
  • 2014-08-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多