【发布时间】:2013-08-22 16:01:20
【问题描述】:
我遇到了一个我无法确定的问题,其他相关问题似乎从未遇到过这个问题。我有一个消息模型,我正在尝试添加一个消息(我写这个是为了用 Faye 测试一些东西)。我遇到了 Rails 4 和强参数的问题。我按照文档中的步骤进行修复,但出现此错误:
NoMethodError: #Message:0x007fc081202968 的未定义方法“消息”>
这是我的控制器和文档的部分,它指导您以这种方式执行强参数 (http://guides.rubyonrails.org/action_controller_overview.html#strong-parameters):
class MessagesController < ApplicationController
def index
@messages = Message.all
end
def create
@message = Message.create!(message_params)
end
private
def message_params
params.require(:message).permit(:content)
end
end
这是我的模型,此时非常简单:
class Message < ActiveRecord::Base
validates_presence_of :message
end
这是我提交的表单:
<%= form_for Message.new, remote: true do |f| %>
<%= f.text_field :content %>
<%= f.submit "Post" %>
<% end %>
我无法弄清楚在消息模型上调用“消息”方法的位置。它说它在创建操作中,我去那里并链接到强参数私有方法。我看不出这是如何将“消息”称为任何地方的方法。我很茫然。我做了 binding.pry 并一步一步地遍历它,但我找不到它在那里调用它的地方,当我使用 binding.pry 单步执行时它仍然失败。
任何帮助将不胜感激。我猜我在这一点上忽略了一些明显的事情。
编辑:添加文档链接并更改围绕我使用 binding.pry 的语言
【问题讨论】:
标签: ruby-on-rails-4 strong-parameters