2012-12-19 16 views
0

我在我的任务模型中定义了一些自定义方法。我送他们到我的骨干应用,像这样:Rails&Backbone.js:传递自定义方法,获取“UnknownAttributeError”

Planner.initialize({ tasks: #{raw @tasks.to_json(:methods => [:timeframe, :timeframe_title, :timeframe_months]) } }); 

然而,当我补充说,ActiveRecord的认为这是在数据库中的字段,我发现了以下错误在控制台:

Completed 500 Internal Server Error in 4ms 

ActiveRecord::UnknownAttributeError (unknown attribute: timeframe): 
    app/controllers/tasks_controller.rb:118:in `block in update' 
    app/controllers/tasks_controller.rb:117:in `update' 

回答

1

感谢Chad Pytel在ThoughtBot,我发现我必须从我的rails模型中的attr_accessible行删除这三个方法。

强烈推荐书"Backbone.js on Rails" by Thoughtbot,它附带对这些问题的聊天支持。

+0

很好,谢谢。 – jake

+0

其他选择:在你的控制器中手动白名单'params',调整你的Backbone模型的'toJSON'不包括那些东西,并使用一个单独的方法来为你的Backbone视图模板序列化你的模型。你也可以接受你自己的答案,但你可能需要再等5个小时。 –

相关问题