Rails 在 Rails 中,两个 controller 如何共用一个实例变量?

whitecrow · 2012年04月18日 · 最后由 whitecrow 回复于 2012年04月18日 · 4031 次阅读

我有两个 controller:pages controller 和 rooms controller.

在 pages 下有一个 view: pages/last.html.erb rooms controller 中定义了一个 show 方法 def show @rooms=RoomType.all respond_to do |format| format.html { redirect_to 'pages/last'} #跳转到 last.html.erb 页面 end end

请问:我现在想在 pages/last.html.erb 中取到@rooms,我应该怎么做呢??

这种情况不该用 redirect 而是应该直接直接 render 那边的 view

不能共用,再取一次

请问是这样 render 吗: pages/last.html.erb中:<%= render :template => "rooms/show"%> rooms/show.html.erb:<%= @room %> show 方法不变。

很奇怪如果 rooms/show.html.erb:<%= @room=Room.all %>可以取到值 但是单纯的<%= @room %>取不到 show 方法里的@room

在 pages controller 里面写一句@rooms=RoomType.all 就可以了

@room = ...
session[:room] = @room
...
...
...
@room = session[:room]

#5 楼 @ywjno session 不要放大对象

谢谢大家嘞 ^.^

需要 登录 后方可回复, 如果你还没有账号请 注册新账号