Ruby

Ruby is an open-source dynamic object-oriented interpreted language that supports multiple programming frameworks including functional, object oriented and imperative. It also has a dynamic type system and automatic memory management. Ruby focuses on simplicity and productivity. Ruby's market share spiked due to Ruby on Rails, a model-view-controller (MVC) framework for building web applications.

Share tech news, updates, or what's on your mind.

Sign up to Post

Thank you for watching.
I'm trying to create a custom filter on ActiveAdmin.
I tried to find a solution with referencing online articles.
But, I couldn't. Plese, help me.

There are two models called PointPayment and Contract.

PointPayment
# Table name: point_payments
#
#  id           :integer          not null, primary key
#  user_id      :integer
#  contract_id  :integer
#  amount       :float(24)
#  created_at   :datetime         not null
#  updated_at   :datetime         not null
#  state        :integer          default(0)
#  payment_type :integer          default(0)

class Contract < ActiveRecord::Base
  has_many :point_payments, dependent: :destroy
end

Contract
# Table name: contracts
#
#  id                         :integer          not null, primary key
#  client_id                  :integer
#  advisor_id                 :integer

class PointPayment < ActiveRecord::Base
  belongs_to :contract
end

Open in new window


I'd like to filter Contract with "payment_type."
But, Contract model hasn't payment_type.
So, I have to filter records of PointPayment model with payment_type at first and pick "contract_id" up from them.
And then, I filter Contract model records with the contract_ids.

The payment_type has four types 0 to 3.
But, I'll only use three types ( 1 to 3 ) for filtering.

Now, I wrote below codes. But, It doesn't work.
I'm stuck. I don't even know how I should search.

models/contract.rb
class Contract < ActiveRecord::Base
  scope :payment_type_one, -> { PointPayment.find_by(payment_type: 1) }
  scope :payment_type_two, -> { PointPayment.find_by(payment_type: 2) }
  scope :payment_type_three, -> { PointPayment.find_by(payment_type: 3) }

  scope :payment_types, lambda { |payment_types|
    case payment_types
    when 2
      pt = payment_type_one
      Contract.id(pt.contract_id)
    when 3
      pt = payment_type_two
      Contract.id(pt.contract_id)
    when 4
      pt = payment_type_three
      Contract.id(pt.contract_id)
    end
  }

  def self.ransackable_scopes(_auth_object = nil)
    %i(payment_types)
  end

end

Open in new window


adminn/contract.rb
ActiveAdmin.register Contract do
  filter :payment_types, as: :select, collection: proc { [%w(Type1 2), %w(Type2 3), %w(Type3 4)] }
end

Open in new window

0
Want Experts Exchange at your fingertips?
LVL 9
Want Experts Exchange at your fingertips?

With Experts Exchange’s latest app release, you can now experience our most recent features, updates, and the same community interface while on-the-go. Download our latest app release at the Android or Apple stores today!

I have inherited a cookbook from another developer and when I run "berks install" I get the following error output.

{dir removed}/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/solve-3.1.0/lib/solve/ruby_solver.rb:80:in `block in resolve': undefined method `name' for nil:NilClass (NoMethodError)
        from /{dir removed}/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/solve-3.1.0/lib/solve/ruby_solver.rb:79:in `each'
        from /{dir removed}/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/solve-3.1.0/lib/solve/ruby_solver.rb:79:in `inject'
        from /{dir removed}/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/solve-3.1.0/lib/solve/ruby_solver.rb:79:in `resolve'
        from /{dir removed}/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/solve-3.1.0/lib/solve.rb:64:in `it!'
        from /{dir removed}/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/berkshelf-5.6.4/lib/berkshelf/resolver.rb:78:in `resolve'
        from /{dir removed}/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/berkshelf-5.6.4/lib/berkshelf/installer.rb:176:in `install_from_universe'
        from /{dir removed}/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/berkshelf-5.6.4/lib/berkshelf/installer.rb:40:in `run'
        from /{dir removed}/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/berkshelf-5.6.4/lib/berkshelf/berksfile.rb:422:in `install'
        from /{dir removed}/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/berkshelf-5.6.4/lib/berkshelf/cli.rb:143:in `install'
        from /{dir …
0
I am working on a POC to read data from a DB using Logstash and create a JSON nested document and put it into elasticsearch. I am unable to create the JSON and was wondering using RUBY for the same however I am new to RUBY and need some help doing the same
The JSON I want created is
 { ParentId:1, ParentName:pName,
Child[
{
ChildId:1,
ChildName:cname1,
}

{
ChildId:2,
ChildName:cname2,
}


]
}


Any help in this regard will be appreciated. I need this urgently
0
hello need help with installing basic installation of gem Capistrano and test the gem locally if possable?
0
I am trying to get a RoR application running on Ubuntu 15.10, the app runs on:
* Apache
* MySQL
* Ruby on Rails

Should I install Apache first, then CD to the Apache directory before installing rails? The reason I ask is there is one GEM that needs to be installed manually:
sudo gem install jquery-rails -v 3.1.4

Open in new window


I have just did a clean Ubuntu 15.10 and started installing Ruby, however I am thinking, should I have installed Apache first? Is there an order to installing RoR for Apache, where I need to be in the apache directories for GEM commands?

I am a Linux newbee, thanks in advance!
0
I just spun up an Ubuntu 15.1 server on GoDaddy VPS.

I am trying to get a ruby web app working, when I enter command:
 ruby -v

Open in new window

I get  back: ruby 2.1.5p273 (2014-11-13) [x86_64-linux-gnu]

however, in my home directory I see a folder named ruby-2.4.0. Why is my Ubuntu server not using Ruby 2.4?
0
Hello,

I have two versions of SASS installed.

SASS (3.4.22, 3.4.21)

Should I uninstall one of them, or leave as is?

If i should uninstall, what command shall I issue at the command line? I am running windows10.

Thanks
0
I am migrating an existing Ruby on Rails application.   I have setup a development environment in Ubuntu with Ruby 1.8.7 and Rails 2.3.12 and SQLite 2.8.17.

I would like to download the production source and install on the development computer.   What do I need to download and move?
0
I’ve been trying to find alternatives to using sleep for some time and it seems that every single suggested method to avoid using sleep never works and I’m at the end of my rope.

      it 'finds the correct product when searching by job type', js: true do
        fill_in('filterrific_for_work_type', with: 'Central')
        # once again, sleep feels like the only thing that works
        #sleep 1 # TODO: find a better way..
        expect(find('#work_queue_items_filter_reset')).to have_content('Reset All Filters')
        expect(page).to have_link('IP Central Report',
                                  href: work_queue_item_path(@release.id))
      end

Open in new window


I also have this wait for ajax helper:

module CapybaraHelpers
  def wait_for_ajax
    Timeout.timeout(Capybara.default_max_wait_time) do
      loop until finished_all_ajax_requests?
    end
  end

  def finished_all_ajax_requests?
    page.evaluate_script('jQuery.active').zero?
  end
end

Open in new window


And in spec_helper.rb:

RSpec.configure do |config|
config.include CapybaraHelpers, type: :feature
End

Open in new window


This test breaks unless I add the sleep 1.  and I’ve tried so many iterations using things like ‘within’ ‘find’, ‘have_content’ ect.  This is really driving me crazy.
0
I’ve been trying to find alternatives to using sleep for some time and it seems that every single suggested method to avoid using sleep never works and I’m at the end of my rope.

     it 'finds the correct product when searching by job type', js: true do
        fill_in('filterrific_for_work_type', with: 'Central')
        # once again, sleep feels like the only thing that works
        #sleep 1 # TODO: find a better way..
        expect(find('#work_queue_items_filter_reset')).to have_content('Reset All Filters')
        expect(page).to have_link('IP Central Report',
                                  href: work_queue_item_path(@release.id))
      end

Open in new window


I also have this wait for ajax helper:

module CapybaraHelpers
  def wait_for_ajax
    Timeout.timeout(Capybara.default_max_wait_time) do
      loop until finished_all_ajax_requests?
    end
  end

  def finished_all_ajax_requests?
    page.evaluate_script('jQuery.active').zero?
  end
end

Open in new window


And in spec_helper.rb:

RSpec.configure do |config|
config.include CapybaraHelpers, type: :feature
End

Open in new window


This test breaks unless I add the sleep 1.  and I’ve tried so many iterations using things like ‘within’ ‘find’, ‘have_content’ ect.  This is really driving me crazy.
0
Technology Partners: We Want Your Opinion!
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

There are two models:

    # == Schema Information
    #
    # Table name: news
    #
    #  id         :integer          not null, primary key
    #  title      :string           not null
    #  content    :text             not null
    #  scope      :string           not null
    #  created_at :datetime         not null
    #  updated_at :datetime         not null
    #  person_id  :integer          not null
    
    # == Schema Information
    #
    # Table name: likes
    #
    #  id        :integer          not null, primary key
    #  like      :boolean
    #  person_id :integer          not null
    #  news_id   :integer          not null

Open in new window


Relation

    news has many likes
    like belongs to news

Open in new window

I want to get most liked news from query. Query should subtract count of likes equal true from likes equal false. The highest number is most liked news.
What I tried:
@most_liked_news = News.joins(:likes).where('likes.like = ?', true).group('news.id').order('COUNT(likes.like) DESC').first

Open in new window

Above returns news that has most positive likes. But it's not all good, because e.g. post with 10 positive and 1 negative will be better than post with 20 positivie and 15 negative(10 - 1 > 20 -15)
0
There are three models:

    # Table name: activities_people
    #
    #  activity_id :integer          not null
    #  person_id   :integer          not null
    #  date        :date             not null
    #  id          :integer          not null, primary key
    #
    # Table name: activities
    #
    #  id          :integer          not null, primary key
    #  name        :string(20)       not null
    #  description :text
    #  active      :boolean          not null
    #  day_of_week :string(20)       not null
    #  start_on    :time             not null
    #  end_on      :time             not null

Open in new window


Third model is people.
Associations:

 
  class Activity < ActiveRecord::Base
      has_many :activities_people
      has_many :people, through: :activities_people
    end
    
    class ActivitiesPerson < ActiveRecord::Base
      belongs_to :person
      belongs_to :activity
    end
    
    class Person < ActiveRecord::Base
    has_many :activities, through: :activities_people
    end

Open in new window

Issue:
I don't know how to create validation method in ativities_person.rb to protect joining on activities, that my other training interests overlaps timely.

Example:

person_id:1 join to activity, that will 08.08.2016(date) and last 09:00(start_on) - 10:00(end_on).
 Same person want save to another activity, that will also be 08.08.2016 and last 09:30(start_on) - 10:30(end_on). Now
validation should throw error that he's save to other activity in same time(time ranges overlap). Validation first should check that dates match, next should check time overlaps of activities.

What I tried:

 

Open in new window

0
I have two models, `Genre` and `Book`. They both have a `has_and_belongs_to_many` association.
What i'm doing is scraping a site and collecting the information of each book. I'm running into an issue updating genres to an existing book and genre in my DB.

Below is an example of how my array of genres are going to come out.

    genres = ["Action", "Drama", "Romance"]

I was thinking of doing this to check if i already have the genre in the database and if it does exist it will update it.

    genre = Genre.where(title: genres).first_or_create
    anime.update(genres: genre)

I end up getting this error.

    `undefined method `each' for #<Genre:0x007f9059868bc0>

Is there a simple way for me to do this? This would really help me.
0
If I'm not mistaken we have a symbol and a hash but still I don't get why we have this syntax can you elaborate me or guide me what to read?
class Tweet < ActiveRecord::Base
  has_one :location, foreign_key: :tweeter_id, dependent: :destroy
end

Open in new window

Thanks
0
I get the following error below with the attached ruby script and text file. Please note you will need to include the text file in the command line after entering the ruby file name. I tried referring to the variable 'mystery_word' in the script as an array but get the same error. Please help. Thanks.

'hangman.rb:47:in `<main>': undefined method `each' for "<mystery word>":String (NoMethodError)'
ruby_hangman.txt
wordsHangman.txt
0
This is Chef cookbook question.

Question: I need to dynamically reference an index.html file located on github.com within the recipe.

Apache2:

template '/var/www/html/index.html' do
   source index.html.erb
end

In the above code, /var/www/html/index.html file is being replaced with index.html.erb located in <cookbook>/template/default/index.html.erb file. What I want is instead of index.html.erb, I need to use https://github.com/<repository>/myIndex.html

If there is any change in myIndex.html, it should reflect in /var/www/html/index.html realtime.

I appreciate your help.
0
I have a Ruby application that I have migrated to gtk3. Most things are working but changing the background color does not work for Entry's . I It works fine for buttons. The commands are of the form:

color = Gdk::RGBA.parse("lightblue1")
 widget.override_background_color(0, color)

gtk3 wants RGBA colors. Another report of this problem  said they only got it working using css . This requires using style & providers. Are there any examples of how to do this in Ruby.
0
I want to run an installer with a GUI which takes bunch of parameter during installation. This is for my github project https://github.com/CodersKarma/OracleCommerceCRS-vagrantbox
where I am using packer to automate installation of Oracle Commerce.

I am a developer with little knowledge in the field of System administration. I know that puppet and/or chef can be used, I have no idea how to write puppet or chef scripts/recipe.
0

Ruby

Ruby is an open-source dynamic object-oriented interpreted language that supports multiple programming frameworks including functional, object oriented and imperative. It also has a dynamic type system and automatic memory management. Ruby focuses on simplicity and productivity. Ruby's market share spiked due to Ruby on Rails, a model-view-controller (MVC) framework for building web applications.

Top Experts In
Ruby
<
Monthly
>