mercredi 13 janvier 2016

Ruby on Rails folder structure with helpers

I have to make a rails API only i.e. input is POST request and output will be an JSON response. I have to interact with mysql database with my own table names i.e. mysql tables are already created. Below is the folder structure with "helpers" even though we are not using any "views". We are accessing the helper methods from our controllers. Please confirm if I am correct or not. Thanks in advance.

1) app/controllers/application_controller.rb

class ApplicationController < ActionController::API
  # Prevent CSRF attacks by raising an exception.
  # For APIs, you may want to use :null_session instead.
  protect_from_forgery with: :exception
end

2) app/controllers/feature_management_controller.rb

class FeatureManagementController < ApplicationController

  def populate_bean


    @json = OrionCountryList.new.sample_function
  end

  def send_response(bean)
    helper = FeatureManagementHelper.new
    if (bean.method.eql?"get_feature_list") && (!bean.app_key.blank?) && (bean.app_key!=nil) && (bean.app_key.casecmp("NULL")!=0)
      logger.info bean.print_bean "Request for fetching featureList by app_key : " + bean.app_key.to_s + " And userID: " + bean.user_id.to_s
    @@json_response = helper.get_feature_list bean

    else
      logger.error "METHOD NOT FOUND. method during feature management :"+bean.method+" app_key :"+bean.app_key
      @@json_response = {:message => "API not avaliable"}
    end
    logger.info("Final json_response sent to app : "+@@json_response.to_json)
    render :json => @@json_response
  end
end

3) app/helpers/application_helper.rb

class ApplicationHelper 
    APP_CONFIG = YAML.load(File.read(File.expand_path('../../../config/app_config.yml', __FILE__)))
end

4) app/helpers/feature/feature_management_helper.rb

class FeatureManagementHelper 

  def get_feature_list(bean)
    response = Hash.new
    response = {:success_code => "1"}
    return response
  end

end

Here we are using "class" key word inside the helpers. But on searching, it seems "module" key word is needed. But we couldn't find the way to access module methods of helpers inside controllers.

Any help is appreciated.Thanks!!!

Aucun commentaire:

Enregistrer un commentaire