【发布时间】:2015-08-24 12:52:52
【问题描述】:
当我从我的 js 文件发送 post 请求时
$http.post('/users/:user_id/tasks/', {id: $scope.task.id, title: data});
在我的控制器中创建操作,我收到以下错误。
带参数
什么意思?
控制器
def create
respond_to current_user.tasks.create(task_params)
end
private
def task_params
params.require(:task).permit(:id, :title, :due_date, :priority, :complete)
end
rake 路线
user_tasks GET /users/:user_id/tasks(.:format) tasks#index
POST /users/:user_id/tasks(.:format) tasks#create
new_user_task GET /users/:user_id/tasks/new(.:format) tasks#new
edit_user_task GET /users/:user_id/tasks/:id/edit(.:format) tasks#edit
user_task GET /users/:user_id/tasks/:id(.:format) tasks#show
PATCH /users/:user_id/tasks/:id(.:format) tasks#update
PUT /users/:user_id/tasks/:id(.:format) tasks#update
DELETE /users/:user_id/tasks/:id(.:format) tasks#destroy
rails 控制台日志
Started POST "/users/:user_id/tasks/" for 127.0.0.1 at 2015-08-24 15:46:23 +0300
Processing by TasksController#create as HTML
Parameters: {"id"=>1, "title"=>"some text", "user_id"=>":user_id", "task"=>{"id"=>1, "title"=>"some text"}}
User Load (0.4ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1 [["id", 1]]
(0.2ms) begin transaction
(0.1ms) commit transaction
Completed 500 Internal Server Error in 11ms (ActiveRecord: 0.8ms)
NoMethodError (undefined method `upcase' for #<Task:0x007f91f513a4c8>):
app/controllers/tasks_controller.rb:22:in `create'
Rendered /home/alex/.rvm/gems/ruby-2.2.1/gems/actionpack-4.2.3/lib/action_dispatch/middleware/templates/rescues/_source.erb (9.9ms)
Rendered /home/alex/.rvm/gems/ruby-2.2.1/gems/actionpack-4.2.3/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (4.4ms)
Rendered /home/alex/.rvm/gems/ruby-2.2.1/gems/actionpack-4.2.3/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (1.6ms)
Rendered /home/alex/.rvm/gems/ruby-2.2.1/gems/actionpack-4.2.3/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb within rescues/layout (39.4ms)
Cannot render console with content type application/jsonAllowed content types: [#<Mime::Type:0x00000003c77a60 @synonyms=["application/xhtml+xml"], @symbol=:html, @string="text/html">, #<Mime::Type:0x00000003c57cb0 @synonyms=[], @symbol=:text, @string="text/plain">, #<Mime::Type:0x00000003c4b960 @synonyms=[], @symbol=:url_encoded_form, @string="application/x-www-form-urlencoded">]
【问题讨论】:
-
你也可以给我们看一下rails控制台日志吗?很高兴看到这个异常的长堆栈跟踪
-
我怀疑堆栈跟踪会将您指向一个回调,该回调正在执行类似于
foo = self.upcase的操作,而它需要是foo = self.title.upcase或类似的操作。 -
@MaxWilliams 遗憾的是,它只指向控制器文件。
-
@ArupRakshit 堆栈跟踪仅包含一条路由
app/controllers/tasks_controller.rb:22:in create -
@BillyLogan 你能在 rails 控制台试试同样的方法吗……看看有没有错误……
标签: javascript ruby-on-rails angularjs ruby-on-rails-4 controller