Ruby on rails &引用#&书信电报;NoMethodError:未定义的方法'permit';对于\";德尔普\";:字符串>&引用;,

Ruby on rails &引用#&书信电报;NoMethodError:未定义的方法'permit';对于\";德尔普\";:字符串>&引用;,,ruby-on-rails,Ruby On Rails,我有一个名为store的实体,它唯一的列也叫做store。其他框架似乎有解决这个问题的方法,但不清楚如何在Rails上正确地做到这一点 def store_params params.require(:store).permit(:store) end 我在一个POST请求中发送了上述内容,我收到了一个看似无关的错误。如何修复此问题?在这种情况下,顶级键store上也应该有一个名为store的属性。尝试在POST请求中传递{“store”:{“store”:“derp”},看看是否有效

我有一个名为store的实体,它唯一的列也叫做store。其他框架似乎有解决这个问题的方法,但不清楚如何在Rails上正确地做到这一点

def store_params
    params.require(:store).permit(:store)
end

我在一个POST请求中发送了上述内容,我收到了一个看似无关的错误。如何修复此问题?

在这种情况下,顶级键
store
上也应该有一个名为
store
的属性。尝试在POST请求中传递
{“store”:{“store”:“derp”}
,看看是否有效


下面是一些关于Rails参数的有用文档,可能会有所帮助:

它确实可以工作,但是有没有一种方法可以让它工作,而不必用“store”来包装参数?等等,没关系,我只需要删除require。你到底为什么要用require?我认为require是为了要求一个字段,而不是要求用户输入包装器。我认为你可以,但它可能会让人有点困惑。无论如何,您可以将store_params更改为:
params.require(:foobar)。permit(:store)
然后将
{foobar:{“store”:“derp”}}
传递到您的帖子。我相信这应该行得通,因为我只是想通过{“store”:“derp”}。看起来我只需要删除.require(),如果你问我的话,它是完全无用的。如果我错了,请告诉我。我不认为这是没有用的,如果您想在同一请求中传递多个对象类型的参数,这将非常有用。例如,您可能在某个时候想要执行
{'store':{'store':'derp'},'region':{'name':'soutwest'},'manager':{'name':'foobar'}
。请注意,
region
manager
现在可以使用相同名称的属性,而且它们不会混淆
{
    "store": "derp"
}