這是我第一次序列化。我在客戶端序列化了一組帶有jQuery的複選框,並將其放入一個隱藏元素中,然後提交表單。現在在服務器端,我想反序列化成一個我可以使用的數組。這是我的客戶端的字符串。Rails 3反序列化陣列
someArray%5B%5D=value0&someArray%5B%5D=value1
在Rails 3,我想獲得一個數組,看起來像:
["value0", "value1"]
謝謝!
這是我第一次序列化。我在客戶端序列化了一組帶有jQuery的複選框,並將其放入一個隱藏元素中,然後提交表單。現在在服務器端,我想反序列化成一個我可以使用的數組。這是我的客戶端的字符串。Rails 3反序列化陣列
someArray%5B%5D=value0&someArray%5B%5D=value1
在Rails 3,我想獲得一個數組,看起來像:
["value0", "value1"]
謝謝!
對於序列化我想出了一些東西,我有一段時間在生產中工作。假設我已經有了一款帶有3種不同類型小工具的汽車模型。 (讓我們假設我不想在DB 3場):
在數據庫必須在現場命名爲小玩意TEXT(THS是非常重要的)
在Car.rbserialize :gadgets
attr_accessible :alarm, :ac, :tires
ALARM = 0;
AC = 1;
TIRES = 2;
# this is the getter for alarm
def has_alarm
if self.gadgets.nil?
return 0
else
if self.gadgets[ALARM].nil?
return 0
else
return self.gadgets[ALARM]
end
end
# this is the setter for alarm
def has_alarm=(value)
self.gadgets = Array.new if self.gadgets.nil?
self.gadgets[ALARM] = value
end
# getter
def has_ac
if self.gadgets.nil?
return 0
else
if self.gadgets[AC].nil?
return 0
else
return self.gadgets[AC]
end
end
# setter
def has_ac=(value)
self.gadgets = Array.new if self.gadgets.nil?
self.gadgets[AC] = value
end
...
在_form.rb
<%= f.check_box :has_alarm %> I want alarm in my car
<%= f.check_box :has_ac %> I want AC in my car
<%= f.check_box :has_tires %> I want deluxe tires in my car
我希望你不要有這些領域後進行搜索......
如果您將它們作爲典型的發佈參數提交給您的請求,機架將自動解析這些值。例如:
curl http://yoursite.com -d "array[]=somevalue&array[]=othervalue"
這將隨後可作爲應用程序內params[:array]
,含有指定的值的兩個元素。