Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 3:通过URL创建新记录_Ruby On Rails_Activerecord_Http Post - Fatal编程技术网

Ruby on rails Rails 3:通过URL创建新记录

Ruby on rails Rails 3:通过URL创建新记录,ruby-on-rails,activerecord,http-post,Ruby On Rails,Activerecord,Http Post,全部: 通过在URL内传递所有参数而不是从Web表单传递参数来创建新记录的正确语法是什么 我希望有一个不同的计算机系统能够连接URL并在我的Rails应用程序中创建新记录 但是,当我试图在“分数”中创造新记录时,Rails不会添加它 http://myapp.heroku.com/scores?message_id=51&subscriber_id=167&amount=3&method=post 其中,要添加到新分数记录的所需属性为消息id、订户id和金额 这

全部:

通过在URL内传递所有参数而不是从Web表单传递参数来创建新记录的正确语法是什么

我希望有一个不同的计算机系统能够连接URL并在我的Rails应用程序中创建新记录

但是,当我试图在“分数”中创造新记录时,Rails不会添加它

    http://myapp.heroku.com/scores?message_id=51&subscriber_id=167&amount=3&method=post
其中,要添加到新分数记录的所需属性为消息id、订户id和金额

这是Heroku日志

    2012-01-26T18:27:34+00:00 app[web.1]: Started GET "/scores?message_id=51&subscriber_id=167&amount=3&method=submit" for 122.17.234.171 at 2012-01-26 10:27:34 -0800
    2012-01-26T18:27:34+00:00 app[web.1]:   Processing by ScoresController#index as HTML
    2012-01-26T18:27:34+00:00 app[web.1]:   Parameters: {"message_id"=>"51", "subscriber_id"=>"167", "amount"=>"3", "method"=>"post"}
    2012-01-26T18:27:34+00:00 app[web.1]: Rendered scores/index.html.erb within layouts/application (3.4ms)
    2012-01-26T18:27:34+00:00 app[web.1]: Completed 200 OK in 16ms (Views: 4.2ms | ActiveRecord: 10.6ms)
    2012-01-26T18:27:34+00:00 heroku[router]: GET postopmobile.heroku.com/scores dyno=web.1 queue=0 wait=0ms service=55ms status=200 bytes=7605
这是我的分数模型

    class Score < ActiveRecord::Base

     belongs_to :message
     belongs_to :subscriber

    end
最后,在上述URL末尾尝试method=submit也不起作用

有什么想法吗?我试图弄清楚这是一个语法问题还是一个更深层次的Rails创建问题


谢谢。

默认情况下,RubyonRails中的新记录是使用
POST
创建的。如果您想使用
GET
请求(我建议不要)创建它们,您需要创建一个自定义路由到
create
操作。有关路由的更多信息,请参阅:。

您需要一个POST请求而不是GET。在url处传递“方法”将不起作用。 如果您确实想这样做,您可以添加自定义路线,例如:

resources :scores do
 get :make
end
然后在控制器上添加“make”操作,这将创建新记录


但这非常不安全。

嗨。谢谢我一点也不想结婚,事实上我想用这个帖子。我不知道如何让Rails意识到我想要发布。我在定制路线上做吗?我是否将该自定义URL指向现有的Create CRUD操作?Rails默认使用POST。发件人(是Ruby应用程序吗?)必须以POST的形式发送请求。您可以使用CURL(或任何HTTP库)生成POST(请参阅)。
resources :scores do
 get :make
end