首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不能使用field_for和rails 5在参数中定义散列

不能使用field_for和rails 5在参数中定义散列
EN

Stack Overflow用户
提问于 2017-04-30 22:41:00
回答 3查看 144关注 0票数 1

我正在尝试向rails范围提交2个值。我需要半径(由一个范围标签提交)和邮政编码。

我有一个形式的fields_for标记(在haml中):

代码语言:javascript
运行
复制
      =f.fields_for :postcode do |postcode_fields|
        =postcode_fields.text_field(:postcode_d,placeholder: "HQ Location")
        =postcode_fields.range_field(:max_range, in: 1..100)

范围:

代码语言:javascript
运行
复制
scope :postcode, lambda {|input|
return nil  if input.blank?

terms = Scotland.near(input[0], input[1])

where(
terms.map { |term|
  " charity_id = ?"
}.join(' OR '),
*terms.map {|e|(e.charity_id)}.flatten
)
}

主计长:

代码语言:javascript
运行
复制
    def scotland_params
      params.require(:scotland).permit!(:charity_number, :charity_name, :registered_date, :known_as, :charity_status, postcode: [:postcode_d,:max_range] , :constitutional_form)
    end

问题似乎在我对邮政编码的定义上。我尝试过各种定义邮政编码哈希的方法,但没有一种方法有效。对于我在这里使用的那个错误是

代码语言:javascript
运行
复制
SyntaxError 

    (/Users/peterkentish/Documents/UNIVERSITY/SecondYear/Semester2/SoftwareHut/project/app/controllers/scotlands_controller.rb:46: syntax error, unexpected =>
..., :charity_status, postcode: =>[:postcode_d, :max_range] , :...
...                               ^
/Users/peterkentish/Documents/UNIVERSITY/SecondYear/Semester2/SoftwareHut/project/app/controllers/scotlands_controller.rb:46: syntax error, unexpected ',', expecting keyword_end
...: =>[:postcode_d, :max_range] , :constitutional_form, :previ...
...                               ^):

TL;DR如何在rails 5中传递嵌套属性?

编辑:

params散列(我认为):

代码语言:javascript
运行
复制
@scotlands = Scotland.all
@filterrific = initialize_filterrific(Scotland, params[:filterrific]) or return
 @scotlands = @filterrific.find.page(params[:scotlands])
@scotlands = @scotlands.paginate(page: params[:page], per_page: 20)

respond_to do |format|
format.html
format.js
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-05-01 18:51:28

如果有人遇到这种情况,宝石文件中就会有一个错误--非常棒:

https://github.com/jhund/filterrific/pull/116

感谢那些帮助我的人

票数 0
EN

Stack Overflow用户

发布于 2017-04-30 22:59:15

真正的问题是,为什么每个人都会完全疯掉,当涉及到写强有力的对白,并将整个定义塞进一行。

不可读代码是如何获得错误的。

代码语言:javascript
运行
复制
def scotland_params
  params.require(:scotland).permit(
    :charity_number, :charity_name, :registered_date, 
    :known_as, :charity_status, :constitutional_form,
    postcode_attributes: [:postcode_d, :max_range]
  )
end
票数 1
EN

Stack Overflow用户

发布于 2017-05-01 01:49:18

我相信您希望将:postcode => [:postcode_d, :max_range]包装在{...}中,或者将:postcode => [:postcode_d, :max_range]移到permit!参数列表的末尾。

SyntaxError是Ruby,在解释代码时,在:postcode哈希之后没有任何期望,因为没有显式的{...}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43712091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档