ruby-on-rails - 模型对象的 Rails4 : undefined method `committed?

标签 ruby-on-rails ruby-on-rails-4

我正在开发 Rails 4 应用程序,最近遇到了一个奇怪的问题。我在这里寻求你的帮助。请指教。

已创建一个小要点片段来理解问题 undefined method committed?

总结一下:

# app/models
class User < ActiveRecord::Base
  has_many :responses, dependent: :destroy
end

class Response < ActiveRecord::Base
  has_one :report
  has_many :points
  belongs_to :user
end

class Report < ActiveRecord::Base
  belongs_to :response
end

class Point < ActiveRecord::Base
  belongs_to :response
end

# config/routes.rb
resources :users do
  resources :responses do
    resources :action_plans
  end
end

# app/controllers/action_plans_controller.rb
class ActionPlansController < ApplicationController
  before_filter :response

  def new
    @report = @response.build_report
    5.times do
      @response.points.build
    end
  end

private
  def response
    @response = current_user.responses.find(params[:id])
  end
end

无论何时,我都在尝试:

http://localhost:3000/users/:user_id/responses/:id/action_plans/new

我收到错误消息:未定义的方法“已提交?”对于响应对象。我在这里做错了什么?

最佳答案

通过定义一个名为 response 的方法在您的 Controller 中,您正在覆盖 Rails 使用的内部 getter。要解决此问题,只需为之前的操作使用不同的名称。命名 Action 的常用方法是使用 set_<entity name>所以set_response是的。

关于ruby-on-rails - 模型对象的 Rails4 : undefined method `committed?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27359655/

相关文章:

ruby-on-rails - Ruby path_to 仅在显式时有效

mysql - Rails - 选择关联参数,但参数 "changing"持续存在

ruby - 通过第三张表插入数据

ruby-on-rails - 删除用户尝试登录

ruby-on-rails - 如何使用 rake 为特定插件生成 rDoc

ruby-on-rails - 设计 token 身份验证 - 安装设计 token 身份验证后无法创建用户帐户

ruby-on-rails - Rails has_one 条件

ruby-on-rails - 如何在 Rails 之外使用 ActiveRecord?

ruby-on-rails - Rails 根或嵌套对象中的强参数

ruby-on-rails - 重定向搜索表单