не понимаю несколько строк рубиновых кодов - PullRequest
0 голосов
/ 06 января 2010

Я работаю над проектом ruby ​​on rails, который был разработан другим экспертом по rails. Я плохо знаю рубин. Поэтому, когда я изменял существующий проект, я не мог исправить ошибку, потому что я не понимал код из нескольких строк. Будет здорово, если кто-то объяснит. Вот коды -

на моем домашнем контроллере - home_controller.rb

class HomeController < ApplicationController

  menu_default :overview
  menu_specific :contact, :contact

на моем контроллере приложения - application.rb

  # report the current menu to the application helper, when forming
  # tabs
  def current_menu
    # work out the action of the current request
    action = request.path_parameters['action']

    # set the default
    menu_id = self.class.menu_structure[:default]

    # any specific ?
    menu_id = self.class.menu_structure[:specifics][action] unless self.class.menu_structure[:specifics].nil? or self.class.menu_structure[:specifics][action].nil?
    menu_id
  end

 def self.menu_default menu_id

    # default the menu
    @@menu ||= {}
    # work out the controller this relates to
    self.menu_structure[:default] = menu_id
  end

  def self.menu_specific menu_id, actions
    # turn the actions into an array
    actions = [actions] unless actions.is_a?(Array)

    # enumerate actions and setup
    actions.each do |action|
      self.menu_structure[:specifics] ||= {}
      self.menu_structure[:specifics][action.to_s] = menu_id
    end
  end

  def self.menu_structure
    controller = self.to_s
    @@menu ||= {}
  end

в моем приложении helper - application_helper.rb

  # page tab helper
  def tab menu_id, title, location
    # ask the application controller which is the current location

    # form the link with the appropriate class
    link = link_to title, location
    if( menu_id == controller.current_menu )
      content_tag("div", link, :class=>"menu_selected" )
    else
      content_tag("div", link, :class=>"menu_open" )
    end
  end

на моем макете - main.haml

= tab :overview,        "Overview", overview_url 

Я застрял на несколько дней. Пожалуйста, помогите мне. Спасибо

1 Ответ

2 голосов
/ 06 января 2010

Рельсы могут показаться непроницаемыми без хорошего справочника. Хотя на рынке их много, я обнаружил, что Прагматическая Книжная полка производит одни из лучших для Ruby и Rails (http://www.pragprog.com/titles).

).

Хотя Ruby довольно прост для понимания, Rails может потребоваться больше времени для полного усвоения, поскольку существует ряд соглашений, которые могут быть незнакомы. В зависимости от вашего опыта, у вас может не быть большого опыта работы с дизайном типа MVC или с объектно-ориентированным программированием в целом, поэтому эти аспекты могут сначала быть немного недоумительными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...