ruby-on-rails - Rails 4 强参数语法错误

标签 ruby-on-rails ruby ruby-on-rails-4

我收到此错误:

/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/

相关文章:

ruby-on-rails - Ruby on Rails的before_filter和prepend_before_filter排序是?

ruby-on-rails - 在 ruby​​ 数组中自定义排序

ruby-on-rails - 正确的 Semantic-UI/Bower/Rails 4 配置

mysql - 对不属于表的元素进行排序

css - 由于溢出滚动触摸 css,表响应 "breaks"模态内部

ruby-on-rails - Ruby on Rails 4-回形针AWS Image URL错误吗?

ruby - 生成伪随机串A-Z,0-9

arrays - 合并数组内部的数组

ruby-on-rails - 点击链接更新用户

ruby-on-rails - 同时设置数字的精度和分隔符