@rubyschool

Страница 113 из 921
Radzhab
18.03.2017
11:18:41
а почему мой вариант не пашет

я его брал с so

Vitaliy
18.03.2017
11:19:09
экшну show нужен еще id поста, вы его не указываете

Denis
18.03.2017
12:07:10
>ro:что мне не нравится - так сильно теоретический язык, нубам он мешает понять что >от них требуется. Нужны примеры из жизни, а не метафизика типа "напиши такой-то >класс, с такими-то атрибутами". Может это и круто если ты понимаешь, но это минус к >кайфу все у них нормально с языком и с примерами, чтобы это понять достаточно посмотреть несколько уроков. Курсы сильно разные, если на твоем - начальная школа с 1 по 3 класс, то у них скорее с 1 - по 9 за то же время. По-хорошему завидуешь тем, кто к 10 уроку пишет валидацию и аксессоры, имея в арсенале одно! приложение из 15 взаимосвязанных файлов.

Google
Nikolay
18.03.2017
12:52:02
в irb отлаживаю программу, пользуюсь load './file.rb', а созданные объекты остаются прежними, можно как-то очищать все?

вроде по load должна происходить перезагрузка

Witalij
18.03.2017
12:57:14
ребята, такой вопрос. вот возьмём условный твиттер. там есть модель posts с полями id, user_id, body. но ведь постов очень много! если я захожу на страинцу к Васе, то что, мы выбираем по этой огромной таблице посты с user_id Васи? это так обычно и реализуется, или есть другие методы, модели к подобным задачам?

Nikolai
18.03.2017
12:57:50
Да, кстати

Хороший вопрос, самому интересно

Vitaliy
18.03.2017
12:59:04
User.find(params[:id]).posts

Nikolai
18.03.2017
12:59:10
Догадки у меня есть, но не буду озвучивать

Виталий, вопрос в том, как это сделано без тормозов

Потому как искать каждый раз в таблице на несколько миллиардов строк

Vitaliy
18.03.2017
13:00:26
На колонку user_id добавлен индекс в бд

Denis
18.03.2017
13:00:35
Индексация

Vitaliy
18.03.2017
13:00:55
Поэтому поиск идет не перебором, а по деревьям индекса, это быстрее

Witalij
18.03.2017
13:01:17
индексация решит проблему при миллиарде постов?

Google
Vitaliy
18.03.2017
13:01:24
Да

Nikolai
18.03.2017
13:01:32
А всякие фишки, типа денормализации не применяются?

Например, каждому юзеру свою таблицу с постами

Witalij
18.03.2017
13:02:51
вот я читал кстати, что в фейсбуке друзья юзера - отдельная таблица

Vitaliy
18.03.2017
13:03:20
Например, каждому юзеру свою таблицу с постами
В документо ориентированных бд - возможно. В реляционных хватает индексов и соблюдения нормальных форм у таблиц

Witalij
18.03.2017
13:03:51
большое спасибо за разъяснения! отлегло от сердца)

Nikolai
18.03.2017
13:04:00
Виталий, может порекомендуешь что-нибудь почитать по архитектуре БД?

Vitaliy
18.03.2017
13:04:52
Базы данных. Основы, проектирование, использование. Мария Малыхина

Nikolai
18.03.2017
13:05:29
Спасибо

Nikolay
18.03.2017
13:07:39
а вот такой вопрос, если допустим делается класс Animal в нем методы и от него наследуется класс Cat. Соответсвенно экземпляр Animal никогда создаваться не будет, но создать его можно - это как-то решается?

Vitaliy
18.03.2017
13:10:35
в самом руби абстрактных классов нет, но вы можете определить в Animal инициализатор, выдающий ошибку, если вызвать конкретно его. И перегружаете этот инициализатор уже рабочими в Cat и других классах

class Animal def initialize raise 'You can not create instance of Animal' end end class Cat < Animal def initialize # your logic for Cat initializer end end

Nikolay
18.03.2017
13:13:06
а если инициализация наследуется и одинаковая у потомков?

Vitaliy
18.03.2017
13:16:10
тогда так: class Animal def initialize raise 'You can not create instance of Animal' if self.class == Animal # your initializer logic end end class Cat < Animal end

Nikolay
18.03.2017
13:18:20
практикуется вообще это? или может вообще зря беспокоюсь?

Vitaliy
18.03.2017
13:20:49
Если нужно - можно. Мне за 4 года практики - ни разу не понадобилось

но я и не писал особо PORO классы

Nikolay
18.03.2017
13:22:12
понятно, спасибо )

а если в приложении создается много объектов динамически от ввода пользователя, можно их как-то список получить или их в массив помещать придется?

Vitaliy
18.03.2017
13:44:23
в массив, если я правильно понял задачу

Google
Aleksey
18.03.2017
14:53:08
Только смотри за памятью)

Nikolay
18.03.2017
14:55:27
да это лабы )

Denis
18.03.2017
15:13:32
Может кто подсказать как подружить collection_select с material design? обычный f.select дружит у меня хорошо и как надо, а collection - ни в какую

<select class="mdb-select"> <%= f.collection_select :current_station_id, RailwayStation.all, :id, :title, { :prompt => "Select " }%> </select> <select class="mdb-select"> <%= f.collection_select :current_station_id, RailwayStation.all, :id, :title, { :prompt => "Select bla bla bla " }%> </select>

вместо второго <select>.....</select> читать как: <script> // Material Select Initialization $(document).ready(function() { $('.mdb-select').material_select(); }); </script>



в итоге select options у меня совсем ен там, где им следует быть:

переделал через обычный select: <%= f.select :current_station_id, RailwayStation.all.map{ |m| [ "#{m.title}", m.id ] }, {prompt: "Select station"}, class: "mdb-select" %> все работает.

Radzhab
18.03.2017
16:24:28
подскажите плиз

есть две модели

Post и comment

на странице с Post хочу добавить и комменты

Radzhab
18.03.2017
16:25:01
<%= form_for([@post, Comment.new]) do |f| %> <div class="field"> <%= f.label :message %><br /> <%= f.text_field :message %> </div> <div class="actions"> <%= f.submit %> </div> <% end %>



Vitaliy
18.03.2017
16:29:01
Как выглядит routes.rb?

Radzhab
18.03.2017
16:29:30
только что добавил

resources :posts, only: [:index, :show, :new] do resources :comments end

вроде ошибка ушла, но непонятно зачем такая иерархич

я

Vitaliy
18.03.2017
16:30:16
REST, все дела

Google
Vitaliy
18.03.2017
16:30:28
Nested resources

Radzhab
18.03.2017
16:30:54
почему то при создании комента не пашет



Vitaliy
18.03.2017
16:31:38
Объявлен контроллер комментов?

Radzhab
18.03.2017
16:32:07
блин) нет

No route matches [POST] "/posts/60/comments"

создал контроллер

Vitaliy
18.03.2017
16:37:13
какой в контроллере код и путь?

Admin
ERROR: S client not available

Radzhab
18.03.2017
16:37:43
роут не менял

resources :posts, only: [:index, :show, :new] do resources :comments, only: [:new, :index] end

Vitaliy
18.03.2017
16:38:11
а, поэтому и не работает

1. Вам нужен экшн comments#index? 2. Вы хотите создавать комменты, это экшн comments#create

Radzhab
18.03.2017
16:39:20
1) ну да, чтобы получить все комменты для заданного поста\

2) да и в правду, забыл про create

Vitaliy
18.03.2017
16:39:51
1. Вы эти комменты выводите на отдельной странице posts/60/comments?

Radzhab
18.03.2017
16:40:06
ну да

даже нет

Denis
18.03.2017
16:40:13
1. комменты для поста не через экшион индекс выводятся

Google
Vitaliy
18.03.2017
16:40:42
post/60 - это экшн posts#show

spartakusQ
18.03.2017
16:40:51
народ кто знает в чём проблема с кодом из 32 урока

function something(){ var x = window.localStorage.getItem('bbb'); x = n * 1 + 1 window.localStorage.setItem('bbb', x); alert('x'); }

каждый раз выдаёт старое и обновление не помогает

Vitaliy
18.03.2017
16:41:29
post/60 - это экшн posts#show
в этом экшне, и во вьюхе posts/show.html.erb у вас и будут выводиться комменты. отдельный экшн comments#index для их вывода не нужен

Radzhab
18.03.2017
16:42:19
я думал индекс для отображения всех коментариев, а show для отдельно одного

Vitaliy
18.03.2017
16:42:33
да, если вы выводите их на отдельных страницах

Silent Bob
18.03.2017
16:43:34
А где скачать можно?
за ништяками по руби все сюда, там же и финкнетика есть https://telegram.me/joinchat/BEkVGT8QyCBWGXRzB1IF6w

Aleksey
18.03.2017
17:22:35
Хороший канал, там по рельсам книга 17 года

Nikolay
18.03.2017
17:39:28
в массив, если я правильно понял задачу
А если допустим имя объекта должно быть уникальным, нормально использовать хэш с символом, чтобы быстро проверять существует ли?

Vitaliy
18.03.2017
18:02:42
да, такое тоже возможно

Radzhab
18.03.2017
18:54:35
какая альтернатива у form for

гем какой нить поудобнее

http://ru.stackoverflow.com/questions/641275/Как-внести-данные-в-несколько-таблиц-за-один-раз

Vladislav
18.03.2017
20:16:41
Оберни в контроллере в транзакцию. В контроллере в params бери вручную нужные ключи и каждый пуляй в нужную таблицу.

Vladimir
18.03.2017
20:17:39
Чтобы автоматизировать работу по переключению между окошками и копипастом, пишу программу на языке программирования AutoHotKey. Там всё серъезно, с переменными и функциями

В общем, когда что-то нужно, быстро разберешся в любом языке)

Vitaliy
18.03.2017
20:33:55
йеее: http://ru.stackoverflow.com/a/641283/217849

Страница 113 из 921