我正在尝试向rails范围提交2个值。我需要半径(由一个范围标签提交)和邮政编码。
我有一个形式的fields_for标记(在haml中):
=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)范围:
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
)
}主计长:
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问题似乎在我对邮政编码的定义上。我尝试过各种定义邮政编码哈希的方法,但没有一种方法有效。对于我在这里使用的那个错误是
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散列(我认为):
@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发布于 2017-05-01 18:51:28
发布于 2017-04-30 22:59:15
真正的问题是,为什么每个人都会完全疯掉,当涉及到写强有力的对白,并将整个定义塞进一行。
不可读代码是如何获得错误的。
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发布于 2017-05-01 01:49:18
我相信您希望将:postcode => [:postcode_d, :max_range]包装在{...}中,或者将:postcode => [:postcode_d, :max_range]移到permit!参数列表的末尾。
SyntaxError是Ruby,在解释代码时,在:postcode哈希之后没有任何期望,因为没有显式的{...}。
https://stackoverflow.com/questions/43712091
复制相似问题