• Как формат файла конфига backup gem?

    @sunnmas Автор вопроса
    Ruby
    backup -h
    Commands:
    backup check # Check for configuration errors or warnings
    backup generate:config # Generates the main Backup configuration file
    backup generate:model -t, --trigger=TRIGGER # Generates a Backup model file.
    backup help [COMMAND] # Describe available commands or one specific...
    backup perform -t, --triggers, --trigger=TRIGGER # Performs the backup for the specified trigg...
    backup version # Display installed Backup version

    backup generate:config
    Generated configuration file: '/home/deployer/Backup/config.rb'.

    backup check
    # Check for configuration errors or warnings
    [2015/12/01 10:45:45][info] Configuration Check Succeeded.
    Ответ написан
    Комментировать
  • Настроить пути compass?

    @sunnmas Автор вопроса
    Ruby
    Ответ написан
    Комментировать
  • Глюк compass, проект на rails?

    @sunnmas Автор вопроса
    Ruby
    ../gems/gems/compass-rails-2.0.5/lib/compass-rails/patches/4_0.rb
    //def generated_image_url(path, cache_buster = Sass::Script::Bool.new(false))
    //    cachebust_generated_images(path)
    //    asset_url(path)
    //  end

    а компиляцию ресурсов буду делать локально, главное теперь в гем файле все с версиями прописать, чтобы на другую версию случайно не перешел
    Ответ написан
    Комментировать
  • Как интерактивно нарисовать круг на yandex картах?

    @sunnmas Автор вопроса
    Ruby
    map = new ymaps.Map(map_id, {
    				center: position,
    				zoom: 10,
    				controls: ['zoomControl', 'fullscreenControl']
    			});
    				circle = new ymaps.Circle([
    					[position[0].toFixed(5),position[1].toFixed(5)],
    					radius
    				], {}, 
    				{
    					draggable: false,
    					fillColor: color1+"33",
    					strokeColor: color1,
    					strokeOpacity: 0.9,
    					strokeWidth: 3
    				})
    				
    
    				var resize_circle = function(e) {
    					if (prev_position != undefined) {
    						var d =	Math.round(ymaps.coordSystem.geo.getDistance(prev_position, e.get('coords')));
    						if (d > 100000) { d = 100000}
    						circle.geometry.setRadius(d);
    					} 
    				}
    
    				var start_draw_circle = function(e){
    					if (circle_mode_button.state.get('selected')) {
    						prev_position = e.get('coords');
    						circle.geometry.setCoordinates(prev_position);
    					}
    				}
    
    
    				circle.events
    				.add('mousedown', start_draw_circle)
    				.add('mouseup', function (e) {
    						prev_position = undefined;
    				})
    				.add('mousemove', resize_circle);
    	
    
    				map.events.
    					add('mousedown', start_draw_circle)
    					.add('mouseup', function (e) {
    						prev_position = undefined;
    					})
    					.add('mousemove', resize_circle);
    
    				circle_mode_button = new ymaps.control.Button("Рисовать область");
    				circle_mode_button.state.set('selected', false);
    				circle_mode_button.events.add('select', function(){
    					map.behaviors.disable('drag');
    
    				}).add('deselect', function(){
    					map.behaviors.enable('drag');
    				});
    				map.controls.add(circle_mode_button, {float: 'right', maxWidth: 200});
    				map.geoObjects.add(circle);
    Ответ написан
  • Как в Rails присваивать массиву объектов другой объект?

    может вы хотели это: @autos = Auto.where("weight < 1000")? Просто вы в цикле сначала выбираете все, а потом хотите оставить только те, которые удовлетворяют условию и засунуть в тот же массив обратно. Хотя такое обычно не спрашивают)
    Ответ написан
    Комментировать
  • Как избавиться от ошибки assets:precompile при деплое?

    @sunnmas Автор вопроса
    Ruby
    Нашел интересность:
    Имеется несколько причин того, что может возникнуть желание компилировать ресурсы локально. Вот некоторые из них:

    У вас нет права записи в файловую систему production.
    Вы размещаетесь более чем на одном сервере и хотите избежать дублирования работы.
    Вы часто производите деплои, не включающие изменения ресурсов.
    Локальная компиляция позволяет зафиксировать скомпилированные файлы в управлении версиями и деплоить как обычно.

    Однако есть три оговорки:

    Вы не должны запускать задачу Capistrano, которая компилирует ресурсы.
    Вы должны убедиться, что в вашей системе разработке присутствуют все необходимые компрессоры или минифайеры.
    Вы должны изменить следующую конфигурационные настройку приложения:
    В config/environments/development.rb поместите следующую строчку:

    config.assets.prefix = "/dev-assets"
    Изменение prefix позволяет Sprockets использовать другой URL для обслуживания ресурсов в режиме development и передавать все запросы в Sprockets. Префикс остался установленным /assets в режиме production. Без этого изменения приложение будет обслуживаться прекомпилированными ресурсами из /assets в development, и вы не увидите какие-либо локальные изменения, пока снова не скомпилируете ресурсы.

    На практике это позволит прекомпилировать локально, держать эти файлы в рабочей ветке и при необходимости фиксировать в системе контроля версий. Режим development будет работать так, как от от него ожидается

    У меня получилось скомпилить их локально. Как теперь
    Вы не должны запускать задачу Capistrano, которая компилирует ресурсы
    ?
    Ответ написан
    Комментировать
  • Первый запуск тестового приложения RoR на ubuntu + Passenger + nginx?

    @sunnmas Автор вопроса
    Ruby
    root /home/deployer/test_app/public;
    Ответ написан
    Комментировать
  • Как задать спрайт after псевдоэлементу?

    @sunnmas Автор вопроса
    Ruby
    Инкулдим миксин в псевдоэлемент лейбла (файл с галкой ok.png)
    @import 'compass'
    @import "compass/utilities/sprites"
    
    $icons-layout:smart
    @import "grey/icons/*.png"
    @include all-icons-sprites
    ...
    label.boolean.checked:after
    	@include icons-sprite(ok)

    compass-style.org/help/tutorials/spriting
    раздел Selector Control
    Ответ написан
    Комментировать
  • Worker в rails не знает маршрут?

    @sunnmas Автор вопроса
    Ruby
    Попробуйте Rails.application.routes.url_helpers.good_path(g)
    Спасибо, Андрею Никифорову
    Ответ написан
    Комментировать
  • Как создать вложенную форму rails?

    @sunnmas Автор вопроса
    Ruby
    =simple_form_for @a, :url => :update_a do |f|
    	=f.input :a_field
    	=f.simple_fields_for :b, @b do |g|
    		=g.input :b_field
    	=f.button :submit
    Ответ написан
    Комментировать
  • Как ускорить рендеринг вложенных полей simple_fields_for?

    @sunnmas Автор вопроса
    Ruby
    В общем я нашел решение!! Оно было на гитхабе в разделе bug reports репозитория simple_form.
    What is the expected slowdown of using SimpleForm?
    Там мистер nashby в марте этого года написал примерно следующее:
    SimpleForm spends a lot of time for trying to translate hints and placeholders for inputs

    Соответственно подставив везде placeholder: false, hint: false где только можно. Получил ускорение с 6 секунд до 780ms.
    Имейте ввиду у себя в приложениях ;)
    Ответ написан
    2 комментария
  • Как вставить рекапчу в подтверждение email?

    @sunnmas Автор вопроса
    Ruby
    Забыл)
    routes.rb:

    devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks", 
    		:registrations => "users/registrations", 
    		:confirmations => "users/confirmations" }
    Ответ написан
    Комментировать
  • Как отключить проверку javascript для части полей формы simple_form?

    @sunnmas Автор вопроса
    Ruby
    Решил разбить форму на части. Получилось 4 формы. Сначала не хотел действовать этим способом, т.к. не хотел чтобы в угоду интерфейса поменялась бизнес логика контроллера. Но все оказалось достаточно приемлемым. Количество маршрутов не изменилось и количество экшенов не изменилось. Это хорошо.
    Старый маршрут:
    get		'/настройки', :to=> 'cabinet/user#edit', :as => :edit_user

    Новый маршрут:
    get		'/настройки/:tab', :to=> 'cabinet/user#edit', :as => :edit_user

    Логика вьюхи. Ранее она содержала все поля, доступные для редактирования, теперь в зависимости от параметра рендерит соответствующий паршиал:
    %h1= @page_title = "Настройки профиля"
    - if params[:tab] == "основные"
    	- @tab = :common
    - elsif params[:tab] == "география"
    	- @tab = :geo
    - elsif params[:tab] == "уведомления"
    	- @tab = :notify
    - elsif params[:tab] == "интерфейс"
    	- @tab = :interface
    - else
    	- @tab = :common
    = render partial: "/cabinet/settings/tabs"
    = simple_form_for current_user, :url => update_user_path, :html => {:multipart => true} do |f|
    	- if @tab == :common
    		= render partial: "/cabinet/settings/form_common", locals: {f: f}
    	- if @tab == :geo
    		= render partial: "/cabinet/settings/form_geo", locals: {f: f}
    	- if @tab == :notify
    		= render partial: "/cabinet/settings/form_notify", locals: {f: f}
    	- if @tab == :interface
    		= render partial: "/cabinet/settings/form_interface", locals: {f: f}
    	= f.button :submit, "Сохранить изменения"
    	= hidden_field_tag :tab, params[:tab]


    Все эти формы сабмитятся на один и тот же маршрут, который не изменился.
    Логика экшена претерпела изменения:
    Было:
    def update
    		bla(bla(bla))
    		redirect_to edit_user_path
    	end

    Стало:
    def update
    		bla(bla(bla))
    		redirect_to edit_user_path(:tab=>params[:tab])
    	end

    Для всех полей модели сделал валидные значения по умолчанию. Получилось, что запись User в базе при создании валидна. Поэтому логика валидаций в модели не изменилась. Как вам такое решение? Как бы сделали вы?
    Ответ написан
  • Как задать синтаксис sass для compass-rails?

    @sunnmas Автор вопроса
    Ruby
    Кстати @import "compass/reset" - отрабатывает без ошибок и в css попадает код сброса

    В общем ответ крылся в том, что в имени файла иконки был пробел. Теперь все работает с кодом, который приведен выше.
    Ответ написан
    Комментировать
  • Как вставить несколько reCAPTCHA на одной странице?

    @sunnmas Автор вопроса
    Ruby
    Переписка с автором гема:
    я
    Hi! I use your gem in my RoR app.
    Recaptcha works well. But when I try to add more than one Recaptcha on different forms at single page - I see only one of them.

    I try get 2 Recaptha for my syte at Google:
    at first form:
    recaptcha_tags :public_key => Rails.application.secrets.recapcha_public_key
    at second form:
    recaptcha_tags :public_key => Rails.application.secrets.recapcha_public_key2

    It not helps me.

    How I can fix it? Thanks

    он:
    Are you able to put two recaptcha on the page even without the gem, just manually? I'm not sure it's a problem with the gem.


    Jason L Perry


    я:
    I never try it. It impossible you mean? Recaptcha (on google level) unsupport it?


    Ответа не последовало. Но я понял, что решения нет.
    Ответ написан
  • Как отрендерить partial из контроллера?

    @sunnmas Автор вопроса
    Ruby
    Итого получилось.
    Контроллер. Экшен для отдачи полей детализации
    def category_details
    		@item = Item.new
    		@item.category = params[:id]
    		render 'details_form', layout: false
    	end

    details_form
    <%= simple_form_for @adv do |f| %>
    логика, которая в зависимости от @item.category, генерит нужные поля с помощью хелперов simple_form
    <% end %>

    <i>JavaScript:</i>
    	$('#поле с выбором категории').change(function(){
    		$('#item_details').empty();
    		$.get('/cabinet/category/'+$(this).val()+'/details_form', {},
    			function(data){
    				$(data).children("[type != hidden]").appendTo('#item_details');
    			}
    		);
    	});

    #item_details - контейнер для дополнительных полей в основной форме. При выборе категории, очищаются ранее загруженные дополнительные поля. Потом шлется запрос. Получаем html с формой, у которой отбираем сердцевину с видимыми элементами(.children("[type != hidden]")). Вставляем в контейнер.

    В логике генерации полей был задействован хелпер fields_for, а в модель товаров было добавлено accepts_nested_attributes_for, для принятия полей дочерней модели.
    Спасибо за помощь, ребята)
    Ответ написан
    Комментировать
  • Как подружить backup и fog?

    @sunnmas Автор вопроса
    Ruby
    Да, он установился, но первые попытки его использовать окончились ошибками:271c52cc15254842b2944a64a77d8a9d.png

    Но потом я стал понимать суть проблемы:
    Backup is a system utility for Linux and Mac OS X, distributed as a RubyGem, that allows you to easily perform backup operations.
    Ответ написан
    Комментировать