Форум программистов, компьютерный форум, киберфорум
Ruby on Rails
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 8
1

Вывод puts в методе

09.11.2013, 13:55. Показов 2077. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Изучаю RoR. Столкнулся с проблемой понимания логики работы

Есть два вопрос:

1. Вот такой метод:

Ruby
1
2
3
4
5
    def hello
        2.times do
            "Hello!"
        end
    end
Ожидал, что он должен два раза написать Hello! Hello! Однако во вьюхе получаю 2

Как так???

2. Во всех пособиях написано, что для "печати" значения в методе нужно использовать puts, однако:

Ruby
1
2
3
def hi
  puts "Hi"
end
Во вьюхе ничего не выводит, зато, если удалить puts, то всё нормально: выводится Hi

П.С. Ruby 1.9.3, Rails 3.2.13
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.11.2013, 13:55
Ответы с готовыми решениями:

Вывод массива в другом методе
Как сделать вывод массива gr_list в методе output из метода addPerson? И проверьте пожалуйста на...

Вывод процесса решения в методе Крамера
Народ, помогите сделать в Мемо вывод процесса решения в программе. Дело в том, что программа в...

Как в методе класса осуществить вывод переменной
По идее нужно чтобы вывело 11, а выводит 0. В чем ошибка понять не могу. #include <iostream>...

Нужно чтобы введённый студент в методе in вывелся на экран как в методе out
#include<conio.h> #include<stdio.h> #include<iostream.h> #include<windows.h>...

13
61 / 58 / 12
Регистрация: 15.06.2012
Сообщений: 149
09.11.2013, 14:33 2
Вы у числа 2 вызываете метод times(&block)
Этот метод возвращает объект 2, а не то, что вы возвращаете в блоке.
0
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 8
09.11.2013, 16:34  [ТС] 3
Да, действительно, если 2 - это объект, то метод times выводится для него. А как тогда вывести times внутри метода?
0
227 / 225 / 23
Регистрация: 30.01.2013
Сообщений: 720
09.11.2013, 19:18 4
Ruby
1
2
3
def hello
  "Hello! "*2
end
0
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 8
10.11.2013, 17:15  [ТС] 5
Как-то не естественно

Ещё не могу понять, почему не работает такой метод:
Rails
1
2
3
4
5
6
def aaa
  n = 3
  while n > 0 do
    "Hello!"
  end
end
Подскажите пожалуйства
0
227 / 225 / 23
Регистрация: 30.01.2013
Сообщений: 720
10.11.2013, 17:20 6
Код работает, но:

1. Он работает в бесконечном цикле, ибо условие 3 > 0 тут бесконечно
2. Он не возвращает как такового результата
0
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 8
11.11.2013, 01:16  [ТС] 7
Ой, забыл добавить в цикл n -= 1
0
227 / 225 / 23
Регистрация: 30.01.2013
Сообщений: 720
11.11.2013, 06:50 8
Ну и добавьте тогда в конце еще возврат нужного результата через return.

Вообще любая книга по языку Ruby сразу решит эту проблему, как создавать методы и возвращать результаты.
0
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 8
12.11.2013, 15:28  [ТС] 9
Прочитал гибкую разработку в среде раилс, посмотрел раилс для зомби. Сломал мозг. Напишите, пожалуйста, как мне добиться, чтобы while три раза вернул строчку.
0
227 / 225 / 23
Регистрация: 30.01.2013
Сообщений: 720
12.11.2013, 15:31 10
я уже выше написал, копирую, возвращает строку "Hello! Hello! Hello! "

Ruby
1
2
3
def hello
  "Hello! "*3
end
0
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 8
12.11.2013, 15:43  [ТС] 11
Спасибо большое, это понятно. Необходимо вывести строчку именно с помощью цикла while
0
227 / 225 / 23
Регистрация: 30.01.2013
Сообщений: 720
12.11.2013, 15:47 12
Зачем именно с помощью while если легко это делается без него?
0
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 8
12.11.2013, 16:07  [ТС] 13
Для общего понимания работы rails. А пока не увижу пример, не пойму как это работает
0
227 / 225 / 23
Регистрация: 30.01.2013
Сообщений: 720
12.11.2013, 16:12 14
while и Rails никак не связаны, while это оператор языка Ruby, Rails это фрэймворк написанный на языке Ruby.

Вот туториал на русском по циклам в Ruby - http://rubydev.ru/2010/05/ruby-iterators-loops/
0
12.11.2013, 16:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.11.2013, 16:12
Помогаю со студенческими работами здесь

Простой вывод массива в методе через конструктор не хочет работать
Без конструктора и дополнительных переменных, а допустим с константой 3, всё работает, но метод...

Собственная функция gets и puts
Как описать свою функцию gets, не могу понять, чтобы работала в моей библиотеке. Аналогично puts. У...

Puts: command not found
Доброе время суток. Вообще такая проблема. Начал учить руби. все хорошо было. все выводило. но...

Переделать cout<< на puts
Помогите мне переделать это выражение cout &lt;&lt; &quot; &quot; &lt;&lt; MenuItems; В выражение через &quot;puts&quot;


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru