@proRuby

Страница 52 из 1594
Ваня
26.05.2016
14:48:54
<a href="/posts/<%= post.id %>"><%= post.title %></a>
этот способ тоже не рабочий)

Boris
26.05.2016
14:49:15
ну может я не так понял - если метод будет возвращать "/posts/#{id}" - то ок

Ваня
26.05.2016
14:49:24
короче надо просто slim юзать)

Aleserche
26.05.2016
14:51:29
Или доки почитать

Google
Aldar
26.05.2016
14:51:30
эхх, привык к рельсовым хелперам

что аж для синатры сразу охота link_to посоветовать

Boris
26.05.2016
14:56:37
вообще я бы оставил именно так - явное - лучше не явного

Vasilij
26.05.2016
15:17:19
это почему это?
может потому, что модель (или что там) не должна знать о таких вещах как ссылки (что явно есть частью представления)?

Dmitry
26.05.2016
15:19:43
Nick
26.05.2016
15:20:38
Boris
26.05.2016
15:21:21
модель не должна уметь это делать

Vasilij
26.05.2016
15:21:32
Не, я истину не предлагаю, просто говорю, что идея с to_href не очень. Да и что вообще значит to_href? А если у поста 2 урла - на апи и на юай

Boris
26.05.2016
15:21:37
сингл респонсибилити

вот это все

ну есть view контекст, этому место в шаблоне

зачем оверинженирить и добавлять какие то хелперы вот это все

Vasilij
26.05.2016
15:24:04
Google
Boris
26.05.2016
15:24:20
ну они от этого дико страдают

то есть конечно магия по началу нравится - думаешь о как клево, не надо пиcать html, link_to вот это все

Ваня
26.05.2016
15:26:58
то есть конечно магия по началу нравится - думаешь о как клево, не надо пиcать html, link_to вот это все
+1 я вот сейчас застрял на линках, ибо никогда особо не думал как там это все работает) Магия и хорошо)

Vasilij
26.05.2016
15:27:36
можно явно сделать но не пихать вот это “/posts/#{post.id}” во вьюху. Можно же сделать какой-то UriResolver.uri_to_post(post.id) или что-то подобное

Можно по модулям сделать UriResolver::Post.path(post.id)

Boris
26.05.2016
15:28:30
ну можно, да, конечно. что угодно можно, но если этот код будет читать другой человек, что будет понятнее? :)

Aldar
26.05.2016
15:28:51
Что на руби собеседованиях спрашивают?

И на рельсовых

1. scope :source, ->(source) { where(source: source) } 2. scope :source, ->(source) { where('source = ?', source) } в чём разница?

Vasilij
26.05.2016
15:29:54
Ну тут в зависимости какой проект. Если побольше (или будет расти). Если бы я читал немаленький проект с вот этим говном во вьюхах - я бы вилки в глаза втыкнул

как потом это поддерживать?

Boris
26.05.2016
15:30:44
мой опыт говорит об обратном - легче поддерживать тот код, где вью максимально тупые, где минимальное кол-во магии

Vasilij
26.05.2016
15:31:33
Да что ты со своей магией. Можно код раскидать без неё

или теперь любой код что не “в лоб” считается магией?

я не говорю о диком оверинжиниринге, просто раскидать код и по делам

Ваня
26.05.2016
15:35:34
скиньте статей почитать о том как это лучше сделать) Мне в голову лезит только самы простой способ, наверное потому что еще знанийй мало и тд

Boris
26.05.2016
15:35:36
любой код, который усложняет простую хрень типа ссылку сделать - бессмысленный :)

Vasilij
26.05.2016
15:37:33
поменял роут @ грепай все вьюхи в поисках

Boris
26.05.2016
15:38:42
все вьюхи :) камон. их будет максимум штук 5

Vasilij
26.05.2016
15:41:32
так я ж говорю от проекта зависит) Если это наваять форму и список к ней - там без разницы

Google
Dmitry
26.05.2016
15:48:50
причем в первом случае, в лямбде будет выполнен метод where с hash аргументом

в по втором два аргумента - строка 'source = ?' и объект source

ума не приложу зачем такое нужно с практической точки зрения =)

наверно что бы коллеги себе мозг повзрывали

Ваня
26.05.2016
15:51:29
это чтобы никто кроме тебя не мог код поддерживать)

Dmitry
26.05.2016
15:52:23
ага, проще было в комменте указать, что автор - мудак, чем делать подобное

Dmitry
26.05.2016
16:39:43
вы серьезно?
Да, если просветишь буду рад =)

Артем
26.05.2016
16:40:11
то есть вы не в курсе, что такое scope и зачем он нужен в ActiveRecord?

Aldar
26.05.2016
16:41:35
?

Ну ничего, скоро узнают)

Aldar
26.05.2016
16:45:47
scope просто class метод создаёт

для AR

Dmitry
26.05.2016
16:45:59
Артем
26.05.2016
16:49:14
то есть никакого шаблона не увидели? ну ничего, научитесь

а разница проста - в первом случае будет строится полноценный запрос средствами arel, а во втором - просто в sql вставится срока с экранированными параметрами вместо знаков ?

Aldar
26.05.2016
16:52:14
Так что лучше использовать?

Артем
26.05.2016
16:53:36
Так что лучше использовать?
зависит от ситуации

в общих случая лучше hash, а если нужно сравнение, типа > или < - то без строки можно конечно обойтись, но с ней проще

Google
Aldar
26.05.2016
16:54:55
Чувак один мне сказал что 1 способ лучше

второй не всегда работает

Dmitry
26.05.2016
16:55:03
то есть никакого шаблона не увидели? ну ничего, научитесь
гораздо полезнее давать ссылки на методы, а не делать пустые умозаключения

http://api.rubyonrails.org/classes/ActiveRecord/QueryMethods.html#method-i-where

https://github.com/rails/rails/blob/ad078767fb4d4a78224efaaf541e9bc847cde245/activerecord/lib/active_record/relation/query_methods.rb#L568

например

Артем
26.05.2016
16:56:19
а зачем в этом конкретном случае ссылки на методы?

если все очевидно

Dmitry
26.05.2016
16:58:02
Ну да, если вы кроме рельс ничего не видели, то конечно да

Артем
26.05.2016
16:58:27
я видел много чего кроме rails) а вы?

Admin
ERROR: S client not available

Dmitry
26.05.2016
16:59:31
Артем, ну это уже не профессионально, извините.

Aldar
26.05.2016
17:00:02
не понял, в первой случае понятно будет строиться AST с помощью arel

Артем
26.05.2016
17:00:32
ага, проще было в комменте указать, что автор - мудак, чем делать подобное
а вот это тоже - професиональное? не разбираясь в api и best practices называть всех мудаками?

Aldar
26.05.2016
17:00:39
а во втором случае, к sql строке просто добавиться в конец 'source = ....'?

Aldar
26.05.2016
17:01:20
а в чём разница получится?

Артем
26.05.2016
17:01:21
c AND раумеется

в итоге? ни в чем

разница в пути к итогу

Google
Aldar
26.05.2016
17:01:52
хм, мне чел сказал что 2 способ не верный, а вот почему я уже забыл

Артем
26.05.2016
17:02:30
не верный он потому, что некоторые делают вот так where("source = #{source}")

что открывает пусть к SQL инъекции

Aldar
26.05.2016
17:03:29
тут инъекции не будет

Артем
26.05.2016
17:03:38
поспорим? )

Aldar
26.05.2016
17:03:44
если ?

если знак вопроса

Артем
26.05.2016
17:03:55
а, со знаком да, не будет

Aldar
26.05.2016
17:04:11
ну я с интерполяцией даже не рассматриваю

Dmitry
26.05.2016
17:04:21
а вот это тоже - професиональное? не разбираясь в api и best practices называть всех мудаками?
это субъективная оценка. И да, я считаю, что с точки зрения кода, использования лямбд - это ужасно.

Артем
26.05.2016
17:04:24
ну а ещё если в запросе фигурирует join

то со строкой могут быть конфликты

если в другой таблице есть такая же колонка

Arel учитывает это и добавляет в sql имя таблицы

Aldar
26.05.2016
17:05:05
тогда непонятно к какой таблице эта колонка будет относиться

Aldar
26.05.2016
17:06:24
всё, теперь ясно, спасибо)

Артем
26.05.2016
17:06:25
@dshmelev а какой ваш основной язык программирования?

Dmitry
26.05.2016
17:07:12
в настоящий момент именно ruby

Артем
26.05.2016
17:07:36
и вас не коробит писать map или each ?

Dmitry
26.05.2016
17:07:51
это тут причем?

Артем
26.05.2016
17:08:12
при том, что map { |a| .... } - это proc

Страница 52 из 1594