Ruby on rails Rails 3:通过URL创建新记录
全部: 通过在URL内传递所有参数而不是从Web表单传递参数来创建新记录的正确语法是什么 我希望有一个不同的计算机系统能够连接URL并在我的Rails应用程序中创建新记录 但是,当我试图在“分数”中创造新记录时,Rails不会添加它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和金额 这
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