Helper nie działa

Witam

Jest kontroler użytkownika

 class UsersController < ApplicationController
      before_action :set_user, only: [:show, :edit, :update, :destroy]

User ma kilka atrybutów: name, surname, itp.

W widoku bez problemu da się wyświetlić
user.name i user.surname

Chciałbym dodać swoją metodę, która zwróci mi ciąg user_name + " " + user.surname

W związku z tym, w users_helper.rb

module UsersHelper
  def name_surname()
    #tu będzie instrukcja do zwracania tego, co potrzebne.
  end
end

Przy próbie pokazania widoku dostaję komunikat:

undefined method `name_surname' for #<User:0x007f0dd4594b68>

Próbowałem do users_controller.rb dodawać:

include UsersHelper
helper UsersHelper

Bez spodziewanego efektu.
Co robię źle?

A Twoja kolumna z nazwiskiem nie nazywa się czasem surname, tak jak napisałeś wcześniej?

kolumna z imieniem: name
kolumna z nazwiskiem: surname

A, już wiem gdzie robisz błąd. Twoją metodę name_surname próbujesz wołać na instancji klasy User zamiast na odbiorcy domyślnym w widoku.

Tej metody nie możesz wywołać na obiekcie user.
Mozesz ją wywołać np w widoku

name_surname(user)

Zaiste, w ten sposób działa.

Co zrobić, żeby taką metodę wywoływać na instancji klasy?

Podobnie jak mam user.new, chciałbym móc zrobić user.name_surname

Dodać ją do klasy User?

Wówczas dostaję błąd, o którym pisałem wcześniej:

undefined method `name_surname' for #<User:0x007f0dd4594b68>

W takim razie nie dodajesz jej do klasy User. Twoja klasa User znajduje się w folderze ‘models’.

Jeżeli nie chcesz rozdmuchiwać klasy modelu (a powinieneś nie chcieć), to zawsze można też usera opakować w jakiś dekorator/presenter, ale polecam zostawić sobie takie techniki na moment gdy już poznasz trochę jak działa framework.

Faktycznie, dodawałem ją do kontrolera users_controller.rb. Zdawało się to logiczne.