【问题标题】:Can't understand reason for syntax error in rails 4.2无法理解 Rails 4.2 中语法错误的原因
【发布时间】:2015-10-05 09:18:28
【问题描述】:

我有以下代码:

params.require(:posting_status).permit(:email, :craig_password,  :mail_password, :posting_id, post_to:[])  

这一行没有给出语法错误,但是当我喜欢时:

params.require(:posting_status).permit(:email, :craig_password, :mail_password,  post_to:[], :posting_id)  

这给出了语法错误,找不到原因。

【问题讨论】:

    标签: ruby-on-rails-4.2 ruby-2.1


    【解决方案1】:

    在第一种情况下,您在开头使用符号并在结尾使用(隐式!)哈希。

    在第二种情况下,隐式哈希不在末尾。 显式哈希解决了这个问题。

    params.require(:posting_status).permit(:email, :craig_password, :mail_password, {post_to:[]}, :posting_id)

    附: 'permit' 方法的源代码:

    文件 actionpack/lib/action_controller/metal/strong_parameters.rb,第 325 行

    def permit(*filters)
      params = self.class.new
    
      filters.flatten.each do |filter|
        case filter
        when Symbol, String
          permitted_scalar_filter(params, filter)
        when Hash then
          hash_filter(params, filter)
        end
      end
    
      unpermitted_parameters!(params) if self.class.action_on_unpermitted_parameters
    
      params.permit!
    end
    

    【讨论】:

      猜你喜欢
      • 2020-11-15
      • 1970-01-01
      • 1970-01-01
      • 2014-08-05
      • 2015-05-09
      • 2015-08-19
      • 2022-10-14
      • 1970-01-01
      相关资源
      最近更新 更多