我正在尝试为Rails表单执行一些服务器端验证,我希望要求特定字段具有值。以下是我的控制器中的参数:
private
def post_params
params.require(:post).permit(:title, :text, :slug)
end
问题在于服务器只是允许这些参数 - 它并不需要它们,因此有可能提交一个完全空白的表单。
据我了解,params.require 只接受一个参数,我尝试绕过这个问题,但没有成功。
private
def post_params
params.require(:post, :title, :text, :slug)
end
# => wrong number of arguments (4 for 1)
private
def post_params
all_params = [:post, :title, :text, :slug]
params.require(all_params)
end
# => param is missing or the value is empty: [:post, :title, :text, :slug]
private
def post_params
params.require(:post).require(:title).require(:text).require(:slug)
end
# => private method `require' called for "test thing":String
有没有一种方法可以要求多个强参数?
presence: true
子句有什么问题吗?我没有任何接受空表单的模型,但我从未修改我的 strong params 来要求超过一个对象... - MarsAtomic