已下单,支持!
膜拜 +1
挺好,昨天收到了 ruby-china 的卫衣,感觉还可以。100 块钱你能干啥,能买件衣服已经很不错了。
#15 楼 @flemon1986 哈哈,是我在提问,还真可以了。为啥要这样呢?3.2.12 和 4.2.5 处理 json 格式为什么会有这个差别呢?谢谢啊。
#13 楼 @flemon1986 这个 methods 貌似只对新添加的虚拟属性起作用,就比如 attr_accessor :testbed_name.我突然有个疑问。就是中间通过 JSON.parse 把@topology的 topology_definition_unresolved 属性重新赋值成 hash 格式。但是@topology并没有改变。他的 topology_definition_unresolved 还是原来的 String 格式。所以输出来的才是字符串而不是 json 格式的文件。
#6 楼 @flemon1986 谢谢,还是不行。真的跪了。一天了,愣是没搞出来。。
@qinfanpeng @Rei 求大神们帮我解答下 二楼三楼的问题,万分感谢。。
#1 楼 @huacnlee 不好意思,打扰了,想了好久,搜了好多也没找到答案。而在 Rails 3.2 里面可以输出 json 格式。
{
created_at: "2016-11-02T01:47:45Z",
created_by: "weshen",
hold_time: 30,
location_id: 3,
status: "TERMINATED",
testbed_id: 232,
testbed_name: "VTB512",
topology_definition_resolved: {
nodes: [
{
name: "UTM",
platform: "NSA 5600",
dut: true,
physical: true,
team: "UTM",
attributes: "team=UTM,testuse=dut",
interfaces: [
{
name: "X0",
remote_node: "PC1",
remote_interface: "eth0",
ip: "192.168.168.168",
network: "192.168.168.0/24",
vlan: 272,
physnet: "physnet1",
external_network: "ext_net",
switch_id: 66,
switch_port: "gigabitethernet 0/24",
vlan_type: "untag"
},
{
name: "X1",
network: "12.12.1.0/24",
ip: "",
vlan: 273,
physnet: "physnet1",
external_network: "ext_net",
switch_id: 66,
switch_port: "gigabitethernet 0/25",
vlan_type: "untag"
},
{
name: "X2",
network: "23.0.0.0/24",
ip: "",
vlan: 274,
physnet: "physnet1",
external_network: "ext_net",
switch_id: 66,
switch_port: "gigabitethernet 0/26",
vlan_type: "untag"
},
{
name: "X3",
network: "192.168.101.0/24",
ip: "",
vlan: 275,
physnet: "physnet1",
external_network: "ext_net",
switch_id: 66,
switch_port: "gigabitethernet 0/27",
vlan_type: "untag"
},
]
}
}
#1 楼 @huacnlee 不好意思再问一下,为什么 topology_definition_resolved 没有解析成 json 格式呢?Rails 4.2.5 http://10.6.1.251:3000/topologies/47452.json
{
testbed_name: "VTB510",
hold_time: 30,
created_at: "2016-10-27T01:51:53.666Z",
created_by: "ayzhang",
location_id: 3,
status: "INUSE",
testbed_id: 230,
topology_definition_resolved: "{"nodes"=>[{"name"=>"RemoteGEN5", "platform"=>"NSA 3500", "physical"=>true, "team"=>"UTM", "attributes"=>"team=UTM,testuse=remote", "interfaces"=>[{"name"=>"X0", "remote_node"=>"PC2", "remote_interface"=>"eth0", "network"=>"172.16.1.0/24", "ip"=>"172.1.1.1"}],}"
}
#1 楼 @huacnlee 谢谢,还有一个问题。 Model
class Topology < ActiveRecord::Base
attr_accessor :testbed_name
end
class TopologiesController < ApplicationController
def show
@topo = Topology.find(2)
@topo.testbed_name = "VTB100"
# Rails.logger.info "#{@topo.inspect}"
if params[:format] == "json" then
@topology.topology_definition_unresolved = JSON.parse(@topology.topology_definition_unresolved)
end
respond_to do |format|
format.html
format.json { render json: @topology }
end
end
end
我想输出json格式的数据。发现并没有testbed_name这个属性。而且@topology.topology_definition_unresolved里面的数据并没有格式化成json数据。但是在3.2版本的rails里面就没问题。看了下rails upgradeguide也并没有讲到这点。
听了一下,讲的也并不是很深入嘛,还是因为我没听懂?
坐等续集。。
20 楼不是说报名了就行么。管他呢。先去了再说。
#3 楼 @jimrokliu 哪有二手的?我想买个。一手太贵了。
bandwagonhost.最便宜套餐 2.99.。
ding!!!
哈哈。好玩。。
#6 楼 @andor_chen 期待中文版。看全英文总有点累,而且不一定能完全理解正确。
春天。玩户外,春天踏青。妹子不要太多。。。。
如果不缺这个钱,果断买。何必等。
好奇的是,没有基础知识,怎么做项目?依葫芦画瓢么?
👍
#3 楼 @msg7086 谢谢。rails guides 里找到了。看书还是太不认真。Rails 4.0 has deprecated the old-style hash based finder API. This means that methods which previously accepted "finder options" no longer do. For example, Book.find(:all, conditions: { name: '1984' }) has been deprecated in favor of Book.where(name: '1984')
#1 楼 @qinfanpeng 感谢提供思路。