Skip to content

Instantly share code, notes, and snippets.

@elvisgiv
elvisgiv / AJAX.md
Last active December 14, 2015 14:35
actions with ajax

#Actions with ajax http://code.tutsplus.com/tutorials/using-unobtrusive-javascript-and-ajax-with-rails-3--net-15243 ##Destroy Для того, чтобы удалить что-либо без перезагрузки страницы следует:

  • добавить remote: true к хелперу link_to во вью:

        ..\blog_web_application\app\views\comments\_comment.html.haml
        = link_to "Destroy", user_post_comment_path(:post_id => @post, :parent_id => comment), 
        :confirm => "Are you sure?", :method => :delete, remote: true 
    

if comment.user_id == current_user.id || comment.post.user_id == current_user.id

Для того, чтобы выставить время отображения созданных объектов для своей временной зоны нужно:

  • зайти в

    ../config/application.rb

  • найти строку:

    config.time_zone = 'Central Time (US & Canada)'

  • заменить 'Central Time (US & Canada)' на свою зону, которую можно посмотреть здесь: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones

  • расхешировать строку со вставленной в нее своей временной зоной

@elvisgiv
elvisgiv / locale.md
Last active February 24, 2016 12:50

##Задача - перевод после создания, удаления, изменения объекта. На примере удаления.

В файле ../config/locales/ru.yml

ru:
  common:
    updated: "Сохранено"
    deleted: "Удалено"
    delete:
      confirm: "Вы уверены?"

Установка Cancancan

Для того, чтобы установить cancancan в свой проект нужно сделать следующее:

  • gem 'cancancan', '~> 1.10' в Gamefile
  • rails g cancan:ability в cmd (командной строке) проекта. Это создаст файл ability.rb в _..\app\models_
class Ability
  include CanCan::Ability
  
  def initialize(user)

Задача - сделать так, чтобы для new и edit рендерилась одна форма при условии, что у нас есть пространство имен

руты:

       scope module: 'admin', as: 'admin' do
       ...
        resources :log_types do
          collection do
            post 'search'
 end

Задача - создание хэлпера для контроллеров

для начала создаем файл в папке app/helpers/filter_helper.rb с кодом

module FilterHelper

  def self.for_select_yes_no_visible_client
    a = [["all visible client", -1], ["yes", 1], ["no", 0]]
    a
  end

две разные записи одного и того же:

1-st
  = link_to admin_users_path(team_id: item.id) do
    users
    %span
      = "(#{@users_count[item.id]})" || (0)
  
2-nd
 = link_to admin_users_path(team_id: item.id) do