
Denis
20.12.2017
05:05:59
подскажите пожалуйста у меня ошибки идут в связи с active directory
class Rss < ActiveRecord::Base
set_table_name "rss"
def up
create_table :system_settings do |t|
t.string :title
t.string :md5
t.text :description
end
end
end
вот я по доке попытался название таблицы задефайнить
потому что без этого АД ищет таблицу resses

Google

Denis
20.12.2017
05:07:08
но сейчас он говорит что
/Users/lir/.rvm/gems/ruby-2.4.1@global/gems/activerecord-5.1.4/lib/active_record/dynamic_matchers.rb:22:in `method_missing': undefined method `set_table_name' for Rss (call 'Rss.connection' to establish a connection):Class (NoMethodError)
Did you mean? quoted_table_name
from rss.rb:23:in `<class:Rss>'
from rss.rb:22:in `<main>'


Andrey
20.12.2017
05:08:11
ты опять миграцию пишешь
set_table_name "rss"
def up
create_table :system_settings do |t|
t.string :title
t.string :md5
t.text :description
end
end
это все лишнее. Это миграция. она отдельно идет
миграцию ты не обязан делать через active_record. и если уж делаешь то обычно файл генерируют автоматически и дают название правильное для миграции типа
/db/migrate/20171128164523_create_system_settings.rb
class CreateSystemSettings < ActiveRecord::Migration
def change
create_table :system_settings do |t|
t.string :title
t.string :md5
t.text :description
end
end
end
Ты получил undefined method `set_table_name' потому что
https://apidock.com/rails/ActiveRecord/Base/set_table_name/class
судя по всему метод устарел
Вообще названия таблиц генерируются сами, и чем с ним бороться проще назвать таблицу не RSS а RssItems например. И под каждую таблицу своя модель. А ты в rss пихаешь system_settings таблицу


Denis
20.12.2017
05:24:38
я просто разбираю разную документацию и разные штуки из них вытаскиваю. я увы совершенно не знаком с АД.
т.е переименуем таблицу
а что такое миграция? это манипуляция таблицами?
с датамаппером всегда было проще
но теперь он ругается на jsonи запускаться не желает
в инете полно таких ошибок но метода их решения собственно нету

Google

Denis
20.12.2017
05:29:11
ой блин запись в базу это какая-то карма для меня mysql2 не хотел работать
теперь и АД не хочет работать
ошибок нет но и записи нет
rss = Rss.new
@RArray.each { |x|
begin
puts x["header"]
rss.title = x["header"]
rss.md5 = x["md5"]
rss.description = x["description"]
rss.save!
rescue
end
}
но оно не пишет

Alabama
20.12.2017
05:36:08
чудес не бывает же. попробуй сразу Rss.create!
вообще, в рельсах исповедуется принцип convention over configuration, благодаря этому очень многое работает из коробки. Тебе бы потратить время и немного почитать про этот конвеншн, а то если настойчиво с ним бороться, то можно потерять много времени совершенно зря. Этой борьбой страдают люди, которые приходят из других языков и пытаются из рельсов яву или доту устроить=) в рельсах тоже все интуитивно и понятно работает, просто иногда немного по своему.

Vitaly
20.12.2017
05:46:17
Сколько будет стоить?
Точно не скажу. Наверное, клиенту приходит счет по пунктам - но вот не вижу где он в панели управления. Конфигурация пока минимальная: vCPUs: 1, Memory: 3.75 GB, SSD storage: 10 GB

Andrey
20.12.2017
05:47:56

Vitaly
20.12.2017
05:48:30

Andrey
20.12.2017
05:49:43
чтобы сделать запись в базе код примерно такой должен быть
Rss.create(title: "bla bla", md5: "bla bla", description: "blabla")

Vlad
20.12.2017
05:57:02
А ничего что он итерирует @RArray в котором содержится некий хэш, судя по обращению внутри блока. И при первой же итерации возникнет ошибка при обращении к несуществующему элементу. А потому что стоит begin/rescue код не выдает никаких ошибок)

Denis
20.12.2017
06:01:28
а вот смотрите
client = Mysql2::Client.new(:host => "localhost", :username => "root")
потом сделал
client.query("insert into lead_to_processes (case_number, style_of_case) VALUES
(#{@case_number}, #{@style_of_case}")
а оно взяло и ничего не написало
почему так это карма?

Andrey
20.12.2017
06:03:51
Скорее всего инициализацию неверно сделал.

Vlad
20.12.2017
06:04:00
Потому что надо научиться дебажить и отлавливать ошибки)

Google

Vlad
20.12.2017
06:04:06
Тогда 90% вопросов отпадает

Denis
20.12.2017
06:04:09
инициализацию в смысле подключение?

Andrey
20.12.2017
06:04:10
Порт например точно не нужен?

Denis
20.12.2017
06:04:16
а как дебажить7
порт стандартный
у меня на этой же машине работает перл скрипт и все чудесно пишет без всяких дополнительных портов
и вот наверное если руби упирается всеми рогами в землю

Andrey
20.12.2017
06:06:51
ну библиотек миллионы, на всех языках. и у всех свои тараканы. ты подружился с конкретной библиотекой. Причем тут perl )) это не его заслуга ))

Denis
20.12.2017
06:06:53
ни тебе датамаппер работает ни АД ни mysql2
то наверное надо переписать на perl
перл вообще не причем
я могу скрипт скопировать на сервер, открыть его для вас

Denis
20.12.2017
06:09:00
может вы сможете его поправить?

Vlad
20.12.2017
06:09:01
Я не знаю, лучше ActiveRecord нет как по мне (ну еще rom-rb). Через адаптер писать чистый mysql в 21 веке, ну как по мне извращение, если этого не требует специфика проекта.

Andrey
20.12.2017
06:09:05
AR не работает потому что ты вообще левые команды набираешь. Просто вот от балды. Какую ты документацию читаешь я хз.

Denis
20.12.2017
06:09:08
а я научусь

Vlad
20.12.2017
06:09:15

Denis
20.12.2017
06:09:40
https://stackoverflow.com/questions/15902684/ruby-sql-insert-using-mysql2-gem
отсюда взял

Andrey
20.12.2017
06:10:04
там тоже пропущена

Google

Andrey
20.12.2017
06:10:14
она даже подсвечена там красным

Denis
20.12.2017
06:11:31
у меня ниче не подсвечено
какой редактор?

Andrey
20.12.2017
06:11:41
там и в ответах тожде самое пишут
Is it possible that you are missing an end quote?
<== notice the quote at the end.

Vlad
20.12.2017
06:12:10
Я просто не пойму что ты пытаешься сделать со скопированным кодом который вставляет в некую таблицу данные. Ты тоже такую таблицу создал для примера и теста?)

Andrey
20.12.2017
06:12:16
да каком редакторе. на SO прямо

Denis
20.12.2017
06:13:55
странно а что там ответ на самом верху что-ли обычно там вопрос
самый нижний ответ где чувак говорит что ты типа кавычку забыл чувак
Влад ну а ты можешь мне показать как правильно? для mysql2?

Admin
ERROR: S client not available

Denis
20.12.2017
06:15:33
Я до этого просто mysql юзал
там работало
и датамаппер мой любимый но почему он теперь не работает я не знаю

Andrey
20.12.2017
06:16:06
чт значит не работает?

Denis
20.12.2017
06:16:09
вот докапался он до джейсона и все

Andrey
20.12.2017
06:16:12
ошибка какая?

Denis
20.12.2017
06:16:28
не работает - не записывает
ошибок нет
а датамаппер?

Google

Denis
20.12.2017
06:16:46
могу показать дай 3 минуты

Andrey
20.12.2017
06:16:57
ошибок нет потому что ты сделал rescue
я не умею в datamapper

Denis
20.12.2017
06:18:12
вот что ДМ говорит
/Users/lir/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/specification.rb:2290:in `raise_if_conflicts': Unable to activate dm-serializer-1.2.2, because json-2.1.0 conflicts with json (~> 1.6) (Gem::ConflictError)
ДМ класный он простой и класный
я его сто раз юзал

Andrey
20.12.2017
06:18:59
ну тут конфликт версий, что у тебя в гемфайле

Denis
20.12.2017
06:19:22
gem list | grep 'json'
json (2.1.0, default: 2.0.2, 1.8.6)
json_pure (1.8.6, 1.6.8)
multi_json (1.12.2)
и вот вопрос ему что не хватает 1.6

Vlad
20.12.2017
06:19:44
И я не умею в datamapper, он вообще какой-то древний) ActiveRecord норм, Rom-RB норм)

Denis
20.12.2017
06:19:51
но поставить его большая проблема

Andrey
20.12.2017
06:20:04
gem list | grep 'json'
json (2.1.0, default: 2.0.2, 1.8.6)
json_pure (1.8.6, 1.6.8)
multi_json (1.12.2)
это не гемфайл

Denis
20.12.2017
06:20:28
нет это я просто показал какие модули стоят
да давайте забудем про ДМ

Andrey
20.12.2017
06:20:48
так неважно что у тебя стоит

Denis
20.12.2017
06:20:49
давайте если не работает АД

Andrey
20.12.2017
06:20:59
тебе в каждом проекте нужны свои библиотеки

Denis
20.12.2017
06:21:05
то может вы поможете мне с mysql2? правильную строчку покажете?

Andrey
20.12.2017
06:21:08
поэтому поичтай про Gemfile

Denis
20.12.2017
06:21:12
а я запишу ее в золотой резерв

Andrey
20.12.2017
06:21:41
он в корень проекта кладется и туду пишутся все гемы которые в проекте используешь