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
Enroll in August's Course of the Month
LVL 9
Enroll in August's Course of the Month

August's CompTIA IT Fundamentals course includes 19 hours of basic computer principle modules and prepares you for the certification exam. It's free for Premium Members, Team Accounts, and Qualified Experts!

Hi All,

I have decent powershell skills, I now want to learn either Ruby or Python , which language will you recommend  and which will be the easiest for someone from a powershell background?

Also do any know if if chef configuration management support python?

thank you in advance
0
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
this script pick up a file and steps through it, and then picks up another file and matches the item number to merge the file and i getting this error, and I do not know why ?

here is the code where the file is blowing up with the following errors repeatedly.

<Error>
substr outside of string at ./parseOsc.pl line 272, <PLUS> line 745800.
substr outside of string at ./parseOsc.pl line 273, <PLUS> line 745800.
Use of uninitialized value $bo_plus in substitution (s///) at ./parseOsc.pl line 283, <PLUS> line 745800.
Use of uninitialized value $res_plus in substitution (s///) at ./parseOsc.pl line 284, <PLUS> line 745800.
Use of uninitialized value $res_plus in string eq at ./parseOsc.pl line 286, <PLUS> line 745800.
Use of uninitialized value $bo_plus in string eq at ./parseOsc.pl line 287, <PLUS> line 745800.
</Error>

<code>
while(<PLUS>) {
     $the_plus = $_;
     chomp($the_plus);
 
     $item_plus = substr($the_plus, 0,10);
     $bo_plus   = substr($the_plus,36, 5);
     $res_plus  = substr($the_plus,41, 5);

   next if $item_plus =~ m/\s*MSC/i;
 
     $item_plus =~ s/\s+//;
     next if $item_plus eq "";
 
   #print " $item  >$item_plus< \t $bo_plus  \t $res_plus \n";
 
   $bo_plus  =~ s/\s+//; ### Error happens here !!!
   $res_plus =~ s/\s+//; ### Error happens here !!!


         $res_plus = ($res_plus eq "" ) ? '0' : $res_plus;
        $bo_plus = ($bo_plus eq "" ) ? '0' : $bo_plus;
 
        next if ( $item ne $item_plus);
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 am trying to install redmine (a ruby based bug tracker) on a goDaddy VPS running ubuntu 15.10. I got the app to install on my dev box using Ubuntu 16.04, however GoDaddy does not offer that as an option for VPS.

For the most part things are working and from what I gather, to get over the 500 error I am getting now, I need to run:
sudo RAILS_ENV=production bundle exec rake db:migrate

Open in new window


And here is where things become harder than the documentation. Now when I run the command I am given the output of:
W: `require 'RMagick'` is deprecated, please change to `require 'rmagick'`

Open in new window


This is where I am over my head for Linux. I am sure this is an easy fix, but I have no idea where to look. I swear I installed Ruby 2.3.3 before I rebooted, however when I run
ruby -v

Open in new window

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

Open in new window

. When I run
sudo rails -v

Open in new window

, I get
Rails 4.1.10

Open in new window

.

Again, I just want to get this command to run:
sudo RAILS_ENV=production bundle exec rake db:migrate

Open in new window

, please help.
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
http://www.cchr.org

this website has a very organized layout

what language
or what content management system is used
0
Free Tool: Site Down Detector
LVL 9
Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

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
Hello,

I have installed the following gem:

https://rubygems.org/gems/autoprefixer-rails

The documentation states the following:

Ruby on Rails
Add the autoprefixer-rails gem to your Gemfile:
gem "autoprefixer-rails"

Clear your cache:
rake tmp:clear

I found a file named 'Gemfile', at the following location:
C:\Ruby22-x64\lib\ruby\gems\2.2.0\gems\autoprefixer-rails-6.5.4

I opened the file, which had the following line
eval_gemfile "#{ File.dirname(__FILE__) }/sprockets4.gemfile"

Open in new window

i added the line,
gem "autoprefixer-rails"

Open in new window

just underneath and saved

Is this what was needed?


About the cache instructions:

I issued the command rake tmp:clear, from the following two locations
C:\Devkit
C:\Ruby22-x64\lib\ruby\gems\2.2.0\gems\autoprefixer-rails-6.5.4

I received the error response

rake aborted!
No Rakefile found

Open in new window



Also, there are separate instructions for Ruby on rails, and separate instructions for Ruby. What is the difference?

Thanks for your help!
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
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
Hi there, recently our business has started to request the need for remote data and or a portal page for our clients.
I have developed in ASP.net (ASP.NET Core) and I have done some research on web api and how it works.
My question is this, what is the general structure for business applications? Is there usually a back-end server program that interacts internally with the company database to process/send request such as web-api that then forwards them to an internal or externally hosted application such as a rails/asp.net site. Or are these generally lumped together into one single application hosted internally? We currently are using WCF services for an in-house mobile application so my thoughts were creating an api that we could use for any existing and future projects to use. Mainly the goal I want to achieve is a reusable system.

Thanks for any help.
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
Free Tool: Port Scanner
LVL 9
Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

#
# Check OS platform to ensure this only executes on Windows
#

include_recipe "chef_handler"

powershell_script do
  code <<-EOH
  ###############
  # Title:
  #
  #
  # Description:
  # Returns 1 if any share or share path allow read/write by the 'Everyone' group (fail)
  # Returns 0 if this condition is not found (pass)
  #
  #
  # 0.1
  ###############

  Try
  {
    #get all shares
    $shares = Get-S | Select-Object Name,Path
    if($shares)
    {
      Foreach ($share in $shares)
      {
        #check share for everyone permissions
        $shareAccounts = Get- -Name $share.Name
        Foreach ($account in $shareAccounts)
        {
          If ($account.AccountName -eq 'Everyone')
          {
            return 1
          }
        }

        #check underlying NTFS path for everyone permissions
        $volum= Get-$share.Path
        if ($volumePerm.Access.Where({$PS -eq 'Everyone'}))
        {
          return 1
        }
      }
    }
    else
    return 0
    #loop through each share checking for 'Everyone'
    # How to pass the return values and send to Chef or something else.
  }
  Catch
  {
    #build error message
  }
  Finally
{
#Return  some final message
}
EOH
   fail "instance has failed the check" if code == 1
End

Please respond with an example, as I think I'm looking at this the wrong way. I see it as a more complex effort - like having to write out a temp file. The client doesn't see …
0
I have several rows of twin radio buttons that are generated via a loop in ruby on rails.  For each row, one of the button is already selected, how do i detect if the user accidentally click on a radio button that's already selected?  Keep in mind these buttons all have generated ids so I can just look for a specific id.  Can someone show me how to do this via ruby on rails or javascript?  Thanks.
0
Hello I have two XML files that I need to merge into one. I am able to use Python or Ruby to accomplish this and so far I have had little to no success.

The two XML files are as follows (unfortunately due to very restrictive licensing they can not be shared):

Products.xml
Ingredients.xml

The products XML has over 1000 nodes(if that is the right term) for each product. One of those "nodes" is UPC which is unique. The ingredients XML files has over 500k ingredients that are all individual but match to the product by UPC.

So I am trying to merge the ingredients to the products using UPC as the unique identifier. Any help on this would be greatly appreciated.
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
Recently I spent hours debugging an issue in a Rails project where ActiveRecord was causing MySQL errors trying to create a User object of a class at the top level of a Single Table Inheritance model structure.  It turns out `.create` behaves differently based on the default value of the type field!
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

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
>