@rubyschool

Страница 205 из 921
Nikolai
15.06.2017
14:21:17
Эта команда добавит их в предыдущий коммит просто

v
15.06.2017
14:22:11
ну или git rebase -i, если ты такой любитель крупных коммитов?

Konstantin
15.06.2017
14:22:43
Ребят, смотрю тут курс Романа, остановился на 21 уроке - там скачали бандл синатры+бутстрапа (он чет безбожно ругался на jquery, - я обновил и бутстрап, и джквери - все заработало)

Google
Nikolai
15.06.2017
14:22:46
Типа - захотел сделать новую фичу, создал новую ветку, в этой ветке делаю первый коммит, а потом в него добавляю изменения при помощи git commit -- amend

Konstantin
15.06.2017
14:22:58
Но чего-то Роман не объяснил, как работают вью

v
15.06.2017
14:23:05
юзай rebase -i, ну

Nikolai
15.06.2017
14:23:34
ну или git rebase -i, если ты такой любитель крупных коммитов?
Не люблю git rebase. Да и к тому же, коммиты у меня не крупные

v
15.06.2017
14:23:46
так и я очем

просто у тебя практика очень самобытная

Andrii
15.06.2017
14:24:05
Konstantin, посмотри следующий урок и все будет яснее

Nikolai
15.06.2017
14:24:09
Одна фича = одна ветка, в которой один коммит с реализацией фичи

v
15.06.2017
14:24:17
обычно подобную технику используют с rebase -i

Konstantin
15.06.2017
14:24:30


Nikolai
15.06.2017
14:24:32
Если фичу поправить надо, то это делается вторым коммитом

обычно подобную технику используют с rebase -i
Я пробовал, мне не понравилось

Konstantin
15.06.2017
14:25:04


Google
Konstantin
15.06.2017
14:25:05
т.е. по логике я должен был получить только то, что тут выделил красным

но вижу при этом еще и верхний бар, хотя в login_attempt.erb только одна форма....

Nikolai
15.06.2017
14:25:50
Константин, в синатре где-то запрятан общий макет сайта

В рельсах он лежит в app/views/layouts/application.rb

Konstantin
15.06.2017
14:26:22
просто в предыдущих уроках при загрузке нового "вида" - он загружался полностью, а старый удалялся

Nikolai
15.06.2017
14:26:28
А где в синатре, я уже не помню

Не, это нормально, то что ты сейчас видишь

Konstantin
15.06.2017
14:27:15
я понимаю, но как это работает? почему эта форма подгружается в главный лэйяут?

Nikolai
15.06.2017
14:27:19
Чтобы менюшка эта не появлялась, её надо вычистить, уже не помню где

Konstantin
15.06.2017
14:27:31


Nikolai
15.06.2017
14:27:34
Вложенные лэйауты

Да

54 строка

В неё вместо yield попадает всё, что в app.rb

И дальше в зависимости от маршрута

Denis
15.06.2017
14:28:34
Черная дыра какая-то.

Nikolai
15.06.2017
14:28:42
Layout.erb это как бы макет сайта

То представление, которое отображается всегда

А то, что в app.rb - непосредственно страницы сайта

Сделано это ради удобства и ради соблюдения принципа DRY

Google
Nikolai
15.06.2017
14:30:32
Потому как один и тот же код копипастить во все разделы app.rb это не круто

Konstantin
15.06.2017
14:32:03
позвал разраба соседа

он рассказал про yield

спасибо и вам :)

Антон
15.06.2017
14:43:36
позвал разраба соседа
если хочешь, то можешь создать пустой layout и вызывать его при вызове вьюхи

def admin_layout {:layout, ‘empty’} end

Denis
15.06.2017
14:45:12
не надо никакой вьюхи

достаточно в контролере прописать layout :false

Антон
15.06.2017
14:46:04
f^ ye lf^ njxyj

а, точно!

Konstantin
15.06.2017
14:46:42
чет я не понял... а где в app.rb вообще строчка про загрузку layout.erb

или синатра по дефолту грузит этот файл?

Антон
15.06.2017
14:52:09
Denis
15.06.2017
17:19:33
Может, кто подсказать как лучше сделать: Есть STI. Допустим вагон, с дочерними классами купе и плацкарт. Есть один на всех контроллер с экшн create через базовый класс: def create @carriage = Carriage.new(carriage_params) end Есть params def carriage_params params.require(:carriage).permit(:train_id, :top_seats, :bottom_seats, :side_top_seats, :side_bottom_seats, :seats, :type) end Добавление вагона осуществляется через одну форму (form_for(carriage.becomes(Carriage)) do |f| ) в которой поля соответственно под все типы мест. Собственно вопрос в чем - как по правильному запретить добавление мест не соответствующих типу вагона, валидацией на absence в каждом дочернем классе? Или есть вариант поизящнее.

Ну, финкнетаны, кто как делал?

pchellovod
15.06.2017
17:23:49
примерно вот такие воспоминания у меня от этого

Denis
15.06.2017
17:23:58
Вспоминай как делал!

pchellovod
15.06.2017
17:24:28
надо смареть, а я уже не могу

Denis
15.06.2017
17:24:44
Давай я посмотрю.

pchellovod
15.06.2017
17:25:19
водноимённом гитхабе должно быть

Google
pchellovod
15.06.2017
17:25:41
pchellovod там и всё такое

Denis
15.06.2017
17:25:46
ну вот у тебя никак не валидируется

посмотрел

pchellovod
15.06.2017
17:26:07
ну и отправляй как есть, параллельно задавая вопрос

Denis
15.06.2017
17:27:39
так я и задал, молчит пока. До этогоу меня вариант был через permitted_params для каждого дочеренго класса, принято, но мол можно сделать изящнее - изящнее то можно, гляжу так и делают, не обратив внимания, что в итоге может придти нечто большее, чем ждали.

Klim
15.06.2017
17:28:24
по- хорошему, джиэсом наверное. типа чекбокса и дизэйблить неподходящие кнопки.

Denis
15.06.2017
17:28:40
джиэкс пока не проходили! : )

понятно, что потом поля формы будут скрываться в зависимости от выбранного типа

Admin
ERROR: S client not available

Klim
15.06.2017
17:31:02
вариант проверять тип вагона в шоу и рендерить соответствующий паршиал.

Denis
15.06.2017
17:31:29
речь о создании

До этого у меня было так: def create @carriage = carriage_class.new(carriage_params(carriage_class)) end def carriage_class @carriage_class ||= params[:carriage][:type].constantize end def carriage_params(carriage_class) params.require(:carriage).permit(carriage_class.permitted_params) end В базовом классе: def self.permitted_params [:type, :train_id, :number] end B дочерних свои permitted_params Ментор говорит, что не место permitted_params в моделях.

В общем сказали не выпендриваться и делать как все:(

Рaukoff
15.06.2017
17:54:12
А в контроллер засунуть что не позволяет

Denis
15.06.2017
17:54:45
Контроллер один для всех и базовго и дочерних классов.

Рaukoff
15.06.2017
17:58:03
На слух сложно..но парамсы в модели точно не должны быть

Denis
15.06.2017
17:59:10
Ну тогда получается только валидацией проверять, с одним общим парамс для всех.

Рaukoff
15.06.2017
17:59:56
Я хз Чо там у тебя..ну сделай ввлидатор ещё

Denis
15.06.2017
18:00:17
что у меня там я выше написал

Рaukoff
15.06.2017
18:01:12
Мало написал..либо несколько парамсов для всех классов

Google
Рaukoff
15.06.2017
18:03:37
В конце концов добавляешь проверку что в парамсах и все..один if

Если 2 вагона конечно

Denis
15.06.2017
18:05:25
Есть класс вагон и 4 подкласса со своими аттрибутами, это уже не один if

Рaukoff
15.06.2017
18:07:22
Есть ещё case

Denis
15.06.2017
18:07:38
завтра дочерних классов станет 8

Рaukoff
15.06.2017
18:07:40
Сложно так гадать то

Разбивай create тогда..нафига в одном контроллере

Denis
15.06.2017
18:10:55
Задача такая.

Рaukoff
15.06.2017
18:12:07
Именно 1 контроллером?

Denis
15.06.2017
18:13:02
Ага и созданием инстансов через базовый класс.

Рaukoff
15.06.2017
18:13:38
И в вагоне больше 4 классов быть не может кстати

Denis
15.06.2017
18:13:55
Почему же

Может.

Рaukoff
15.06.2017
18:14:09
Если больше это уже не вагон

Общий Плацкарт купе св

Пздц

Denis
15.06.2017
18:14:52
Купе, сидячий, плацкарт, св, а еще какие-нибудь люкс с одной кроватью, люкс с душем - уже 6 классов

Рaukoff
15.06.2017
18:15:19
Ты когда на поезде ездил

Denis
15.06.2017
18:16:00
Ну в 2008 такие ходили, с душами и двуспальными кроватями и даже с барами внутри, не знаю как сейчас.

при том при всем, что это был такой же вагон как и остальные

Рaukoff
15.06.2017
18:17:35
Ща найду Линк ..может поможет

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