【问题标题】:Ruby on Rails - coffeescript $.post statement causing errorRuby on Rails - 导致错误的咖啡脚本 $.post 语句
【发布时间】:2014-12-18 18:15:31
【问题描述】:

在我的咖啡脚本代码中

app/assets/javascript/drill.js.coffee

...
$('document').ready ->
  if $('#x_eval_assum').length == 1
    $('#x_eval_assum')  
      .submit (event) ->
        event.preventDefault()
        data = $("#x_eval_assum").serialize()
        drill_id = $('.form.assumption').attr('data-drillid')
        $.post "/drills/#{drill_id}/discovery_target_saved.json", data, (res)->
           console.log(' here ')
      .change (event) ->
        event.preventDefault()
...

app/controller/drills_controller.rb

...
  def discovery_target_saved
    load_evaluation_assumption_selections
    load_user_positions
    render :json, {data: @drill.id}
  end

在开发者工具控制台中我看到了这个错误 POST .. host:3000/drills/13/discovery_target_saved.json 500(内部服务器错误)

尝试了多种变体 - 我做错了什么?

更多内容

“load_evaluation_assumption_selections”和“load_user_positions”都是 Drill Controller 操作,它们工作正常并被其他 Drill 操作使用。

我目前在内部日志中显示另一个错误 - 特别是

Completed 500 Internal Server Error in 46ms

ActionView::MissingTemplate - 缺少模板演习/json、应用程序/json 与 {:locale=>[:en]、:formats=>[:json]、:variants=>[]、:handlers=>[: erb,:builder,:raw,:ruby,:jbuilder,:coffee]}。搜索: * "/Users/davidlee/drill_investor/app/views" *“/Users/davidlee/.rvm/gems/ruby-2.1.1/gems/devise-3.4.0/app/views” : actionview (4.1.6) lib/action_view/path_set.rb:46:in find' actionview (4.1.6) lib/action_view/lookup_context.rb:124:infind

【问题讨论】:

  • 服务器控制台上是否有一些输出,可能是这个内部错误?你在load_evaluation_assumption_selectionsload_user_positions 做什么。我想我们无法回答这个问题,因为您这边没有足够的信息。
  • @drill 是否已在控制器中设置?如果没有,那么当您在 @drill 上调用 .id 时,您将得到一个 no method error
  • 另外,我不确定您的网址是否有效。尝试用此版本替换您的 $.post 行:$.post "/drills/#{drill_id}/discovery_target_saved", data, (res)-> console.log('here'), "json"
  • 工作异常地闭嘴,但会尽快回到明天 - 皮埃尔

标签: ruby-on-rails coffeescript


【解决方案1】:

您的应用正在寻找名为 :json 的视图模板。请在控制器中尝试此操作:

def discovery_target_saved
  load_evaluation_assumption_selections
  load_user_positions
  render json: {data: @drill.id}
end

【讨论】:

    猜你喜欢
    • 2012-11-27
    • 1970-01-01
    • 1970-01-01
    • 2019-05-02
    • 1970-01-01
    • 2012-04-28
    • 2014-05-27
    • 2011-11-08
    • 2019-05-05
    相关资源
    最近更新 更多