К элементу select в руби нужно было привязать стили. и да я не понял как в первом варианте записать имя в таком же формате как и во 2 и 3. поэтому ???
К элементу select в руби нужно было привязать стили. и да я не понял как в первом варианте записать имя в таком же формате как и во 2 и 3. поэтому ???
да странный вопрос.
<%= form_with(url: "/findtext", method: "get",remote:false) do %>
а в браузере все равно
<form action="/findtext" accept-charset="UTF-8" data-remote="true" method="get">
а добавить нужно было всего
<%= form_with(url: "/findtext", method: "get",remote: false , local: true) do %>
в итоге форма стала
вот так сделал форму поиска application.html.erb
В роутс routes.rb
В контроллере workers_controller.rb
1) создание модели в руби rails g model Worker fio:string id_positions:integer phone:string email:string id_department:integer comment:string что я не понял то как идет связь между контроллером и моделью. контроллер у меня называется worker. может модель привязывается к последнему созданному контроллеру? ну и еще если забыл немного если контроллер принято называть workerS а модели worker ну упустил.
2) rake db:migrate создаст таблицы указанные db\migrate\20200416105159_create_works.rb
3)??? подумал подумал и если ? может быть в тексте как часть текста то что это вопрос на будущее я могу и не найти. а ??? будут встречаться и я однозначно пойму что это вопрос(не то что пойму а искать по тексту гораздо проще ??? чем один знак вопроса)
короче как в руби сделать контроллер модель и таблицу с абсолютно разными именами? например контроллер first модель second и таблицу third. походу нельзя так, ибо нужно соблюдать ЗАПОВЕДИ!!
а ты соблюдаешь ЗАПОВЕДИ?:)
4) rails g model Departments name:string adress:string worker:references # а в worker:references мы связываем таблицы и это не правильно. короче не связываем, это тут для примера. а в чем дело? да в том что связать нужно было наоборот. если я сделаю как выше то у меня на каждого пользователя будет свой отдел. а нужно что бы каждому отделу соответствовало несколько пользователей. короче поправим вручную в базе.
на встречу страхам мы свой путь продолжим. Gросто красивая фраза:)
не будем сильно заморачиваться возьмем схему базы данных которую я делал когда в качестве тестового задания на php.
Дальше нам нужно определиться с классами(контролерами):
worker-сотрудники
position-должность
logtable-лог_процедура (ха, называется она лог процедура потому что нужно было было реализовать хранимую процедуру записи в эту таблицу, ну я скрин сделал не заморачиваясь а сейчас вспомнил)
department-отделы
organization-организация
pages-все остальные страницы.
и формами(страницами). в 1 версии нашего телефонного справочника все будет на минималках(На*** тебя, на*** «Версус» вместе с вашей послушной толпой, лучше я сдохну ***чим ноунеймом, чем прославлюсь и стану тобой раун:) ), по мере появления свободного времени будем реализовывать новые вещи, опять же скажу себе и всем я на нем учусь.
а вот этот человек прям красавчик https://www.youtube.com/user/PlurrimiTube/videos . если изучаешь руби заходи и подписывайся.
1) rails new myphonetest
2)так как учусь делаю как в видосе, Gemfile=>source 'http://rubygems.org'
3)bundle install в директории проекта.
4)rails s # для проверки запустим сервер, опять же в директории проекта.
5)rails g controller Workers, далее прописываем метод индекс, создаем файл во вьюхах и запись в routes.
6)и вот начинаются танцы с бубном.
TypeError: Объект не поддерживает это свойство или метод
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
слава богу не у меня первого, app\assets\javascripts\application.js раскоментировать = require_tree . так же советуют app\assets\stylesheets\application.css добавить запись require turbolinks и в app\views\layouts\application.html.erb заменить
Мне помогло просто раскоментировать. Ахтунг! это решение новичка. так что вряд ли оно правильное.
7) выполним rake routes и увидим 1 маршрут который мы прописали в routes.rb добавим в этот файлик resources :workers выполним туже команду посмотрели результат.
1 этап
1.1)рисуем структуру базы данных и вставляем ее сюда
1.2)описываем страницы и их функционал(просмотр, поиск, добавление)
1.3)описываем классы
1.4)реализуем. дополнительно: первая версия должна быть одной из самых простых.
2 этап
реализуем различные фичи такие как
2.1) загрузи в https://github.com/, посмотри как с ним работать
2.2)проверить то что получилось на инъекции
2.3)аякс и руби
2.4)руби и валидация данных по средства js
2.5) поэкспериментировать с json
В посте "Первая высота" в пункте 4.5 у меня был неудачный опыт работы с heroku. а именно я не смог загрузить данные на сервер. в общем походу проблемой была что не верно делал связь между git на персональном компьютере и на heroku. а делать нужно было так(этот вариант у меня заработал, для обучения само то):
0) у меня было написано приложение руби на локальном пк, и мне нужно было залить его на хероку.
1) git init #инициализируем .git
2) git add . # Добавляем в индекс все где были изменения.
3)git commit -am "комментарий" # вот тут самое страшное, если я ставлю ключ -am то я добавляю в коммит все ранее отслеживаемые файлы и если я уже раньше комитил что то, то пункт 2 мне ненужен.
4) heroku create имя_приложения #до этого нужно зайти на heroku выполнив heroku login
5) git remote -v(вот и мои косяки описанные ниже, такой связи у меня не было или она была прописанна не верно. этот пункт выводит информацию, можно не выполнять)
6)git push heroku master #отправили в heroku в ветку мастер, а если в другое место то git push origin mybranch
7)heroku run rake db:migrate # миграция базы
8)heroku restart # рестарт сервера
9)все:)
Заголовок содержит мой запрос который я спрашивал у великого яндекса:) короче изучая ruby я задавался вопросом как посмотреть какие таблицы в базе у созданного мною приложения. базу я не создавал, где база непонятно, спрашивал так же как подключиться к базе в ruby. оказалось как всегда все просто.
первый вариант в директории где запускали сервер: rails server пишем rails db далее можно выполнить .databases и о чудо мы видим путь к файлу базы данных нашего приложения. выполнив .tables мы увидим таблицы которые есть в этой базе. ну а посмотреть содержимое .schema имя_таблицы
второй вариант ставим приложение SQLite и указываем путь к базе данных.
У музыкантов на тонущем Титанике был четкий план, и какое то время все шло по плану:) так что мне нужно сделать что бы поднять свой уровень? как говорил доцент учить от сих до сих. Цель на бесплатном хостинге типа heroku или каком то еще реализовать приложение телефонный справочник. обязательно использовать в разработке git, как нибудь в демонстрационных целях привязать туда json, разобрать пример sql иньекций на руби, они вообще возможны и межсайтовый скриптинг(вообще еще 10 лет назад после универа в самой первой самописной админке для чего то там я не сделал подобную проверку и получил волшебный пен..ель от начальства)? сейчас поздний вечер 9 апреля приступаем:)
1)Изучаем https://ru.hexlet.io/courses/intro_to_git (изучил до 4 пункта) инициализировать репозиторий git init
Из полезного git commit -m "cooments" в виндовс 7 комментарии пишем в двойных кавычках(2.25.1.windows.1)
если просто написать git commit для новичка начнется какая то дичь:) откроется редактор, в котором нужно написать комментарий(знак # закомментирует ваш комментарий в комментарии и ничего не получиться, так что или все удалите или начинайте с новой строчи). для выхода нажать ESC и ввести команду :wq
когда введете git log -p и посмотрите результат для выхода нажмите "q"
2)Несколько команд которые я забыл на следующий день в мою записную книжку:
2.1)Очистить экран в cmd => cls
2.2)Создать файл в cmd copy con myfile.txt далее вводим содержимое нашего тестового файла, нажимает Enter, ctrl +Z и опять Enter.
2.3)git add имя файла(подготовка файла к комиту), git commit -m "comment"(комит с каментом), git log(просто логи с комментариями), git log -p(что именно изменили), git diff(разница между файлом и его версией в гите)
3)Вот и дошли до отката к прежней версии:)
3.1)Если удалил файл и в git log -p мы посмотрели 5 символов хеша то можем восстановить нужную нам версию файл такой командой: git checkout cc45a 5.txt .
3.2)В случае удаления файла из git прекрасной командой git rm filename.txt(мы подумали что не нужно отслеживать данный файл) делаем:
git reset HEAD а затем git checkout HEAD filename.txt , но это работает только до того как мы выполним commit , так что будьте осторожнее:)
3.3)Так как это моя записная книжка добавлю что если мы вополнили git add filename То отменить git reset filename.
4)То что пойдет дальше выделю отдельным пунктом.
4.1)Создать новую ветку git branch vetka2, посмотреть какая ветка активна да и все ветки git branch переключиться git checkout vetka2
4.2)Воу воу воу полегче, то что было дальше опишу так. создал файл в ветке vetka2, выполнил команду add и commit переключаюсь на мастер а его там нет!!! переключаюсь в vetka2 вношу изменения в файл, команда add и commit переключение в мастер открываю этот файл а изменений там нет. можно сказать что только сейчас я добрался до сути. ну продолжим дальше.
4.3)Что бы слить изменения из двух веток в одну нужно зайти в ветку куда мы будем все сливать и выполнить команду git merge ветка_от_куда_сливаем. Ну а откатить изменения можно git reset --hard хеш_коммита
4.4) git clone от_куда куда, git clone url -b нужная_ветка (когда нужно стянуть одну ветку)
, посмотреть зависимости в git remote -v, получить себе git pull, git push отправит все комиты в удаленный репозиторий.
создать этот самый удаленный репозиторий git init --bare
?4.5) создать удаленный репозиторий с 2-3 ветками, клонировать себе и пушить в разные ветки и тд и тп. короче не получилось. при переключении между ветками на удаленном репозитории ошибка: "this operation must be run in a work tree git" при попытке запушить в другую(не мастер) ветку на удаленном репозитори error: "src refspec vetka2 does not match any" и "error: failed to push some refs to 'c:\gitrep2'" ну будем посмотреть.
Нововведение! 1 какой нибудь разбор любой темы это 1 материал в джумле. Разборы делаю более полными с примерами, и группирую по категориям.
Ну что начнем, частенько когда нужно поискать по введенным пользователям данным что то возникает проблема пользователь где то использует нижний регистр а где ты и не думал верхний. Вот и не может твой скрипт найти то что ищет юзер. Для этого у нас есть lower(МАМА мыла Раму)=> "мама мыла раму".
Так же когда мы ищем вхождение по строкам без like нам не обойтись, часто использую такую конструкцию like "%кусок чего то%" по русски это будет звучать ноль или больше символов, кусок чего то, ноль или больше символов.