
Alex
12.03.2018
09:47:28
с какой?

Alex
12.03.2018
09:47:36

Alex
12.03.2018
09:48:41
validates_presence_of

Google

Alex
12.03.2018
09:48:47
s забыл в слове validates

Alex
12.03.2018
09:48:50
нет, как раз не забыл
http://matchers.shoulda.io/docs/v3.1.1/Shoulda/Matchers/ActiveModel.html#validate_presence_of-instance_method
там не должно быть s на конце
да даже если поставить s ошибка никуда не пропадает
он пишет что константа contact не иницилизирована

Alex
12.03.2018
09:52:27
RSpec.describe Contact, :type => :model do
а так?

Alex
12.03.2018
09:53:12
просто прописать в командную строку?

Alex
12.03.2018
09:53:31
заменить в тесте

Alex
12.03.2018
09:54:10
вместо всей модели describe ?
удивительно, результат даже не поменялся

Google

Alex
12.03.2018
09:56:12
Как файл с моделью называется?

Alex
12.03.2018
09:56:47
contact.rb
лежид в models

Alex
12.03.2018
09:59:16
в консоли при обращении к данной модели ошибок нету?
Contact.all например
Это единственный тест?
Или есть другие?
https://stackoverflow.com/questions/17507416/rspec-doesnt-see-my-model-class-uninitialized-constant-error

Alex
12.03.2018
10:00:47
до других я ещё не дошел
irb(main):001:0> Contact.All
NoMethodError: undefined method `All' for Contact (call 'Contact.connection' to establish a connection):Class

Alex
12.03.2018
10:01:21
Наверное ссылка поможет, раз это первый тест
all пишется в нижнем регистре

Alex
12.03.2018
10:01:44
да, заметил
да пишет что пустая база
#<ActiveRecord::Relation []>

Alex
12.03.2018
10:02:16
Наверное ссылка поможет, раз это первый тест

Alex
12.03.2018
10:02:41
до этого я просто rspec тесты делал, без ошибок
но сейчас rspec-rails и с матчером
так там рекомендуется сделать rails generate rspec:install
Я так-то с этого и начал и матчеры установил в rails_helper уже
потому как до этого я уперся в то что rspec знать не знал про функции испольуемые мною из Shoulda Matchers. Только в уроке то используется старая версия а у меня новая. Я сначала подумал что rspec-rails в новых версиях подругому пишутся , ну и написал сюда
я догадался в чем проблема

Google

Alex
12.03.2018
10:15:27
вверху require 'rails_helper'

Alex
12.03.2018
10:15:33
да
но теперь у меня не работает Shoulda matchers
и если я убиру её настроки из rails_helper то все работает, кроме собственно функций этого матчера

Alex
12.03.2018
10:24:34

Alex
12.03.2018
10:24:42
заменил

Alex
12.03.2018
10:25:45
require 'shoulda/matchers'
в rails_helper есть?
вообще rails_helper на pastebin и ссылку сюда скинь
require 'spec_helper'
require 'rspec/rails'
require 'shoulda/matchers'
и файл spec_helper тоже покажи

Alex
12.03.2018
10:28:04
https://pastebin.com/xt207U9m
https://pastebin.com/pgDYh24g
в последнем spec

Vladimir
12.03.2018
10:29:31

Alex
12.03.2018
10:31:07

Vladimir
12.03.2018
10:31:40
супер!

Alex
12.03.2018
10:32:10
в доках к shoulda сказано что надо добавить пару 10-ков строк в rails_helper.rb
собственно когда я поменял в тесте require spec на rspec, тест стал работать если не использовать функции shoulda и удалить те строки из rspec_helper
А если строки добавить то ошибка

Google

Alex
12.03.2018
10:38:02
у меня была идея что я просто не туда вставляю, но в доках и не сказано куда это делать, а в rails_helper указано только # Add additional requires below this line. Rails is not loaded until this point! после которой я и добавляю

Alex
12.03.2018
10:40:49
require 'shoulda/matchers'
в rails_helper

Alex
12.03.2018
10:43:19
забавно, я нашел решение, надо добавить require File.expand_path('../../config/environment', FILE) в spec_helper
однако, я подумал что раз я использую rails_helper, то надо добавить эту строчку туда, и что вы подумаете?) она уже там есть , хехехе...
Я догнал в чем проблема, все проще некуда...

Admin
ERROR: S client not available

Vladimir
12.03.2018
11:16:48
#PR #RubySchool https://github.com/ro31337/rubyschool/pull/17/files/6783bc85108d516d083b98f90bccaf43736e6fc0..127f258812bd513b6e3491b9daf7d2e567def733

Alex
12.03.2018
11:23:53

Alex
12.03.2018
11:31:36
подскажите, что мне стоит знать про docer , где почитать и сколько это стоит)

Kim
12.03.2018
11:41:36
народ, возник вопрос: как обрабатывать следующие параметры? —-> Parameters: {"utf8"=>"✓", "authenticity_token"=>"ugMTUMCLhS32wdOZJ8dLwVMOB9ojEZR9uJ5fdrGyZTkc4JO/vjZJO83KZ+Fy+2riuHqYQl7W0vrisTT/2cdnfg==", "order"=>{"positions"=>[{"stock_id"=>"1", "provider_id"=>"1", "qty"=>"1"}, {"stock_id"=>"2", "provider_id"=>"3", "qty"=>"1"}, {"stock_id"=>"3", "provider_id"=>"2", "qty"=>"1"}], "title"=>""}, "commit"=>"Update Order", "id"=>"14"}
суть: есть заказ с id=1, он имеет несколько позиций, которые имеют id товара, id поставщика и количество
параметры принимаю, а как их дальше связать чет пока не понятно


Vlad
12.03.2018
11:47:04
Ну пробежаться по всем positions просто и там уже обработать их. например записывая в модель OrderPosition или OrderProduct которая для этого создана. У которой есть дублирующиеся параметры stock_id, provider_id, qty и собственно order_id (belongs_to :order), чтобы на момент заказа сохранялась информация о цене например именно в момент заказа, например если она изменится после заказа.
params["order"]["positions"].each do |position|
position["stock_id"]
position["provider_id"]
position["qty"]
end
Или в смысле "как обрабатывать параметры"?

Kim
12.03.2018
11:51:22
я не могу построить цепочку. у меня есть модель Order c полями id, created_at, updated_at. есть модель OrderStock с полями id, created_at, updated_at, order_id, qty, provider_id, stock_id
И я хочу при нажатии заказа чтобы модель OrderStock заполнялась
а сейчас я имею параметры и не могу никак подружить Order и OrderStock
с этитми nested params

Google

Kim
12.03.2018
11:53:44
надеюсь понтно, что я хочу))

Vlad
12.03.2018
11:55:34
Ну в OrderStock (это типа товары заказа?) надо чтобы было прописано в модели belongs_to :order
И пишем типа если у нас Order уже создан, то пишем
order = Order.find params[:id] (в нашем случае 14)
params["order"]["positions"].each do |position|
OrderStock.create(order_id: order.id, provider_id: position["provider_id"], stock_id: position["position_id"], qty: position["qty"]
end
Ну это если тупым таким образом когда все передается в параметрах.
Можно сделать через accepts_nested_attributes_for
http://api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/ClassMethods.html

Kim
12.03.2018
11:57:18
брррр
попробую пока по тупому
спасибо
А Order has_may :order_stocks, верно?

Vlad
12.03.2018
12:01:31
Ну да, чтобы потом можно было обратиться order.order_stocks

Kim
12.03.2018
12:01:45
буду пробовать ,спасибо большое

Alex
12.03.2018
13:18:30
c Factory_girl у меня тоже проблемы были, сделал реквест ещё один с примечанием
кто-нибудь может объяснить в чем разница между validates :title, presence: true и validates_presence_of :title
если я правильно понял то разница просто в синтаксисе, один для 2-ой версии, другой для 3+ rails
Я хочу сделать тест на проверку валидации в ограничение на 140 символов строки, у меня есть функция в shoulda matchers validate_length_of(:something).is_at_most(140)
Но что бы узнать что проверка эта в rpsec сработает, мне нужно написать под неё factory где этот техт и будет переполнен или функция сама отработает все ?

Kim
12.03.2018
17:03:47

Alex
12.03.2018
17:18:22

Vladimir
12.03.2018
17:20:01
... значит всё не так уж плохо на сегодняшний день, и билет на самолёт...

Andrey
12.03.2018
17:54:41

Alex
12.03.2018
17:55:57