Ruby on rails 当我在Rails 4中提交内容时,一个警告错误地说有两个错误?
在提交表格(标题和应通过的内容)时,我得到以下信息: 接下来,在events.rb中,我注释了验证要求:Ruby on rails 当我在Rails 4中提交内容时,一个警告错误地说有两个错误?,ruby-on-rails,Ruby On Rails,在提交表格(标题和应通过的内容)时,我得到以下信息: 接下来,在events.rb中,我注释了验证要求: class Event < ActiveRecord::Base has_many :comments, dependent: :destroy #validates :title, presence: true, # length: { minimum: 5 } end class事件
class Event < ActiveRecord::Base
has_many :comments, dependent: :destroy
#validates :title, presence: true,
# length: { minimum: 5 }
end
class事件
在那之后,表单会允许我提交一个事件帖子,但所有内容都是空白的,如图所示:
值得注意的是,在我提交Desive之前,我的提交一直有效,并通过添加用户模型进行了一些其他更改。请看一看,让我知道我能做些什么 如果您不希望它为空,那么您仍然需要
validates :title, presence: true
在
events\u controller.rb
中,需要允许所需的用户可编辑参数,并使用该参数创建事件
Event.create!(event_params)
def event_params
params.require(:event).permit(:title, :description)
end
查看git repo中的EventsController,我发现在创建操作中,您正在创建事件实例,如下所示:
@event = Event.new(params[:event].permit(:title, :text))
换成
@event = Event.new(event_params)
或
您可以通过打开验证来检查它,它现在应该可以工作了。嗨,Brian,谢谢您的帮助。我试过了,但没用。我假设把
@event=event.create!(事件参数)
,但结果与之前相同。我还尝试了不使用@事件
,但得到了一个红屏错误,关于2个错误也出现了同样的情况。我以前在控制器的私有区域中有“event params”,所以没有对其进行更改。还有什么我可能遗漏的吗?嗨,科蒂,我试过了,但没用。谢谢你查看我的Git回购。不幸的是,我得到了与以前完全相同的错误,尝试了你的两个建议。你可能知道其他的可能性吗?你的意思是你输入了一个长度超过5的标题,即一个完全有效的标题,应该通过验证,然后提交表格,你会得到同样的错误,说“标题不能为空”?是的,我可以放一整本书,它一直说我做了错事。它说有2个错误,不能为空,并且“少于5个字符”。我认为这与我在gem中包含的“受保护的属性”有关。似乎解决了我的意思,我现在正在尝试解决它。我确实认为是attr_可访问性,但我得到attr_可访问性是从Rails提取到gem中的。请为参数(强参数)使用新的推荐保护模型,或将受保护的属性添加到您的GemFile以使用旧的保护模型。(运行时错误)
。我会尝试在不使用宝石的情况下修复它。您知道在提供了信息的情况下,我如何轻松做到这一点吗?由于引入了强参数,Rails4中删除了Attr_accessible。我不知道你为什么要用那个宝石,因为我认为如果你用的是Rails4,就不需要它了。你可以参考这个问题了解细节:()嗨,我试过这个,但它仍然给我标题错误(即它说没有标题。)我可能错过了任何其他可能性?
@event = Event.new(params.require(:event).permit(:title, :text))