我收到此错误:
/Applications/MAMP/htdocs/clippo2/app/controllers/projects_controller.rb:31: syntax error, unexpected ',', expecting => ...:user_id => [1], :instructions, :max_duration, :active, :max... ... ^
在尝试实现 Rails 4 强参数时从这个方法:
private
def project_params
params.require(:project).permit(:user_id => [1], :instructions, :max_duration, :active, :max_videos, :hashed_id)
end
我做错了什么?
最佳答案
尝试删除 :user_id
符号后面的“=> [1]
”:
params.require(:project).permit(:user_id => [1], :instructions, :etc) ^^^^^^^
params.require(:project).permit(:user_id, :instructions, :etc)
或者如果您想保留它,请使用{ }
:
params.require(:project).permit({:user_id => [1]}, :instructions, :etc)
或者使用 ruby 语法解析器来发挥您的优势(请参阅下面的更多信息):
params.require(:project).permit(:instructions, :etc, :user_id => [1])
这实际上是一个 ruby 功能。赋予方法的最新参数隐式是哈希,因此您不需要在最新参数上使用花括号 {
和 }
对象 .
例如,调用这样的方法:
permit(1,2,3, :some => :var, :of => :a, :ruby => :hash)
与做的事情完全相同:
permit(1,2,3, { :some => :var, :of => :a, :ruby => :hash })
但是,如果哈希值首先没有大括号 {
和 }
,则以不同的顺序传递参数会破坏解析器。
关于ruby-on-rails - Rails 4 强参数语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18279017/