Это не то, как вы используете методы контроллера. В Rails методы, определенные на контроллере, используются для «установки» данных, необходимых для конкретного представления, или для обработки заданного запроса. Они не должны вызываться напрямую из представления.
Для того, что вы пытаетесь сделать, вам нужно добавить вспомогательный метод к WelcomeHelper
. Итак, если вы хотите, чтобы http://yourapp.dev/welcome/
выдало сообщение выше, вам понадобится:
# app/controllers/welcome_controller.rb
class WelcomeController < ApplicationController
def index
# Explicitly defining the `index` method is somewhat redundant, given
# that you appear to have no other logic for this view. However, I have
# included it for the sake of example.
end
end
# app/views/welcome/index.html.erb
<%= greeting %>
# app/helpers/welcome_helper.rb
class WelcomeHelper
# All methods in WelcomeHelper will be made available to any views
# that are part of WelcomeController.
def welcome
if (@current_user)
# You may need to change this to something like `@current_user.name`,
# depending on what @current_user actually is.
'¡Bienvenido' + @current_user + ' a nuestra web!'
else
"¡Bienvenido invitado, no dude en registrarse!"
end
end
end