Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在Rails中,在多个操作中重新分解代码集的最佳方法是什么?_Ruby On Rails_Ruby_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 在Rails中,在多个操作中重新分解代码集的最佳方法是什么?

Ruby on rails 在Rails中,在多个操作中重新分解代码集的最佳方法是什么?,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,我有这样一个代码片段: class AwardunitsController < ApplicationController include AwardunitsHelper before_action :signed_in_admin #Only allow signed in admins to the defined actions ########################### ##########

我有这样一个代码片段:

    class AwardunitsController < ApplicationController
        include AwardunitsHelper

        before_action :signed_in_admin #Only allow signed in admins to the defined actions

        ###########################
        ########## Note : There are single duplicate lines. Check for them

        def index

            ############ Turn empty params[:district] to nil and params[:district] "Select District" to nil
            params[:district] = nil_paramsdistrict(params[:district])
            ############ Turn empty @district to nil
            @district = nil_district(@district)



            ############ Set the District. If params[:district] is not nil, @district = params[:district]. If params[:district] is nil and @district is not nil params[:district] = @district
            ## DUPE4
            if params[ :district ] != nil
                @district = params[ :district ]
            elsif @district != nil
                params[ :district ] = @district
            end



        end # Index action end ################################################################################################


        def new

            ############ Turn empty params[:district] to nil and params[:district] "Select District" to nil
            params[:district] = nil_paramsdistrict(params[:district])
            ############ Turn empty @district to nil
            @district = nil_district(@district)



            ############ Set the District. If params[:district] is not nil, @district = params[:district]. If params[:district] is nil and @district is not nil params[:district] = @district
            ## DUPE4
            if params[ :district ] != nil
                @district = params[ :district ]
            elsif @district != nil
                params[ :district ] = @district
            end

            ############ Create new Awardunit object
            @awardunit = Awardunit.new

            ############ Set contact variables. *fie = number of fields. Array.new will create new empty Arrays to store contact numbers.
            @contactfie = 1
            @contacts = Array.new
            @instheadcontactfie = 1
            @instheadcontacts = Array.new



        end # New action end ################################################################################################

        def create

            ############ Turn empty params[:district] to nil and params[:district] "Select District" to nil
            params[:awardunit][:district] = nil_paramsdistrict(params[:awardunit][:district])



            ############ Set @disabled value. @disabled value is used to set Disabled field's default selected value. If params[:awardunit][:disabled] is nil, set @disabled to 'No' otherwise @disabled = params[:awardunit][:disabled]
            if params[:awardunit][:disabled] == nil
                @disabled = 'No'
            else
                @disabled = params[:awardunit][:disabled]
            end

            ############ Convert Disabled value from 'yes' 'no' to database accepted values 'true' and 'false'
            if params[:awardunit][:disabled] == "Yes"
                params[:awardunit][:disabled] = true
            else
                params[:awardunit][:disabled] = false
            end



            ############ Set Province wording. If params[:awardunit][:district] is not set, make @province nil
            if params[:awardunit][:district] != nil
                if (params[:awardunit][:district] == "Kandy") || (params[:awardunit][:district] == "Matale") || (params[:awardunit][:district] == "Nuwara Eliya")
                    @province = "Central Province : (CP)"
                elsif (params[:awardunit][:district] == "Ampara") || (params[:awardunit][:district] == "Batticaloa") || (params[:awardunit][:district] == "Trincomalee")
                    @province = "Eastern Province : (EP)"
                elsif (params[:awardunit][:district] == "Anuradhapura") || (params[:awardunit][:district] == "Polonnaruwa")
                    @province = "North Central Province : (NCP)"
                elsif (params[:awardunit][:district] == "Kurunegala") || (params[:awardunit][:district] == "Puttalam")
                    @province = "North Western Province : (NWP)"    
                elsif (params[:awardunit][:district] == "Vavuniya") || (params[:awardunit][:district] == "Mullaitivu") || (params[:awardunit][:district] == "Mannar") || (params[:awardunit][:district] == "Kilinochchi") || (params[:awardunit][:district] == "Jaffna")
                    @province = "Northern Province : (NP)"
                elsif (params[:awardunit][:district] == "Ratnapura") || (params[:awardunit][:district] == "Kegalle")
                    @province = "Sabaragamuwa Province : (SGP)"
                elsif (params[:awardunit][:district] == "Matara") || (params[:awardunit][:district] == "Hambantota") || (params[:awardunit][:district] == "Galle")
                    @province = "Southern Province : (SP)"
                elsif (params[:awardunit][:district] == "Moneragala") || (params[:awardunit][:district] == "Badulla")
                    @province = "Uva Province : (UP)"
                elsif (params[:awardunit][:district] == "Kalutara") || (params[:awardunit][:district] == "Gampaha") || (params[:awardunit][:district] == "Colombo")
                    @province = "Western Province : (WP)"
                else
                    @province = nil
                end
            else
                @province = nil
            end



            ############ Set Province code for NYAAID
            if @province != nil
                @provincecode = @province.match(/(\((.*)\))/)[2]
            end



            ############ Create new Awardunit using params
            @awardunit = Awardunit.new(awardunit_params)



            ############ Build the NYAAID from multiple fields if params[:nyaaid] is not nil only and assign it to @awardunit
            if params[:nyaaid] != nil
                @nyaaids1 = params[:nyaaid][:nyaaids1]
                @nyaaids2 = params[:nyaaid][:nyaaids2]
                @nyaaid = "NYAA/#{@nyaaids1}/#{@provincecode}#{@nyaaids2}"          
                @awardunit.nyaaid = @nyaaid
            end



            ############ Build contact array from multiple fields and assign it to @awardunit
            @contactfie = params[:contactfie].to_i
            @contacts = Array.new
            (1..@contactfie.to_i).each do |i|
                 @contacts << params[:contact][:"#{'contact'}#{i}"]
            end
            @awardunit.contact = @contacts



            ############ Build Instaheadcontact array from multiple fields and assign it to @awardunit
            @instheadcontactfie = params[:instheadcontactfie].to_i
            @instheadcontacts = Array.new
            (1..@instheadcontactfie.to_i).each do |i|
                 @instheadcontacts << params[:instheadcontact][:"#{'instheadcontact'}#{i}"]
            end
            @awardunit.instheadcontact = @instheadcontacts



            ############ Form submit actions
            ##################### Add / Remove contact numbers
            if params[:commit] == 'More Numbers'
                @contactfie = @contactfie + 1
                render 'new'
            elsif params[:commit] == 'Less Numbers'
                if @contactfie > 1
                    @contactfie = @contactfie - 1
                    render 'new'
                else
                    flash.now[:error] = "Can't remove all contact fields!"
                    render 'new'
                end
            ##################### Add / Remove Instheadcontact numbers
            elsif params[:commit] == 'More Head Numbers'
                @instheadcontactfie = @instheadcontactfie + 1
                render 'new'
            elsif params[:commit] == 'Less Head Numbers'
                if @instheadcontactfie > 1
                    @instheadcontactfie = @instheadcontactfie - 1
                    render 'new'
                else
                    flash.now[:error] = "Can't remove all contact fields!"
                    render 'new'
                end
            ##################### Add Awardunit
            elsif params[ "commit" ] == "Add Award Unit"
                if @awardunit.save
                    flash[ :success ] = "Award Unit #{@awardunit.name} Successfully Added!"
                    redirect_to new_awardunit_url
                else
                    render 'new'
                end
            else
                render 'new'
            end



        end #Create action end ################################################################################################
class AwardunitsControllerdef index
  meaningful_name
end


def create
  meaningful_name
end

private

def meaningful_name
    if params[ :district ] != nil
        @district = params[ :district ]
    elsif @district != nil
        params[ :district ] = @district
    end
end 
def index
  meaningful_name
end


def create
  meaningful_name
end

private

def meaningful_name
    if !params[ :district ].nil?
        @district = params[ :district ]
    elsif @district.nil?
        params[ :district ] = @district
    end
end 
class MyController < ActionController::Base
  before_action :meaningful_name, only: [:index, :create]

  def index
    # your normal index code
  end

  def create
    # your normal create code
  end

  private

  def meaningful_name
    if params[ :district ] != nil
        @district = params[ :district ]
    elsif @district != nil
        params[ :district ] = @district
    end
  end
end