我遇到了一个我无法确定的问题,其他相关问题似乎也没有遇到过这个问题。我有一个Message模型,我正在尝试添加一条消息(我正在写这个用Faye测试一下)。我遇到了Rails 4和强参数的问题。我按照文档中的步骤来修复它,但是我收到了这个错误:
NoMethodError:#Message的未定义方法`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 %>
我无法弄清楚在消息模型上调用方法“message”的位置。它说它在创建动作中,我去那里它链接到强参数私有方法。我不知道那是怎么称呼“消息”作为任何地方的方法。我很茫然。我做了binding.pry并逐步完成它,但我无法找到它在那里调用它的地方,当我逐步使用binding.pry时它仍然失败。
任何帮助将不胜感激。我猜这是显而易见的,我现在忽略了这一点。
编辑:添加文档链接并更改使用binding.pry
的语言答案 0 :(得分:0)
发现问题,这显然是荒谬的。在验证中我把:content字段是:message。