4
我已經得到了一個基於樹的導航,我希望通過控制器的各種操作。但是,當我通過單擊link_to移動到另一個操作時,基於樹的結構崩潰了。維護基於樹的導航欄的狀態
我該如何保持狀態?
這裏是代碼,如果它是需要的: -
.three.columns
%ul(class = "continent_name")
- @destinations.group_by(&:continent).each do |continent, ds_per_continent|
%li=link_to continent, "#"
%ul(class = "country_name")
- ds_per_continent.group_by(&:country).each do |country, ds_per_country|
%li=link_to country, "#"
%ul(class = "city_name")
- ds_per_country.each do |destination|
%li=link_to destination.name, destination_path(destination)
當我去目的地的路徑我想要的國名是可見的,而不是一切都崩潰了。如何才能做到這一點?
控制器代碼
class DestinationsController < ApplicationController
before_filter :find_destination, :except => [:index]
before_filter :all_destinations
def index
end
def show
@photos = @destination.destination_photos.all
cookies['destination_id'] = params[:id]
end
def photos_videos
@photos = @destination.destination_photos.all
end
def topic_blog
@topics = Topic.all
end
private
def find_destination
@destination = Destination.find(params[:id])
end
def all_destinations
@destinations = Destination.all
cookies['destination_id'] = params[:id]
end
end
JS代碼
$(document).ready(function(){
$('.country_name').hide();
$('.city_name').hide();
$('li').click(function() {
$(this).next('ul').toggle();
});
$('.city_name').click(function(){
$('.destination').append();
});
});
模型
class Destination < ActiveRecord::Base
alias_attribute :city, :name
validates :continent, :presence => true
validates :country, :presence => true
end
jQuery的
$('.country_name').hide();
$('.city_name').hide();
$('li').click(function() {
$(this).next('ul').toggle();
});
$('.city_name').click(function(){
$('.destination').append();
});
感謝,我會檢查出來現在 – 2012-03-12 17:11:08
我不能通過使用代碼來維護狀態 – 2012-03-12 17:18:40
是的,在控制器代碼中有一個錯誤 - 我修正了它,希望它現在可以工作。另外我不知道你的導航控制器代碼看起來是什麼樣子,所以我不確定哪個變量應該在cookie中記憶。 – 2012-03-12 17:26:45