新手问题 render @modelInstance 和 render 'controller/view' 似乎在 partial 下表现不一样
jicheng1014
·
2014年11月27日
·
1732 次阅读
今天在使用partial views的时候出现了一个问题,不知道我总结的是不是对的,还请各位指点
起因
在某个action当中,我需要使用另外一个controller的action对应的view,我的代码如下所示
# police_controller
def get_out_record_list
police = Police.find_by_uid(params["device_uid"])
@out_records = police.live_out_records
render "out_records/index"
#render @out_records
end
之后实际上out_records/index
的view 当中,使用了partial 代码如下所示
json.array!(@out_records) do |out_record|
json.partial! 'out_record' , out_record: out_record
end
此时我的_out_record.json.jbuilder
这个是放在views/out_records/
这个目录里的
但是此时程序就会报错,说在views/police/ 中找不到_out_record 这个模板文件
但是一旦将police_controller 修改一下
# police_controller
def get_out_record_list
police = Police.find_by_uid(params["device_uid"])
@out_records = police.live_out_records
#render "out_records/index"
render @out_records
end
程序就正常运行了
猜想
- 当render 接model_instance 相关的时候, template 的默认路径是model_instance 的view路径
- 当render 指定的时模板路径 时,template的默认路径还是原来的view 路径
我查看了下guide.ruby-china.org 里面似乎没有交代这个,还是我读书不仔细没看到这个说明
暂无回复。