#ruby-on-rails #undefined
#ruby-on-rails #не определено
Вопрос:
Я пытаюсь передать «Приветственное сообщение» своим пользователям с этим:
#welcome_controller.rb
class WelcomeController < ApplicationController
def hi
@current_user
if (@current_user)
@welr = '¡Bienvenido' current_user ' a nuestra web!'
else
@weli = "¡Bienvenido invitado, no dude en registrarse!"
end
end
end
#hi.html.erb Only the call
<%= hi %>
Когда я инициализирую свой сервер, контроллер выдает мне это сообщение:
неопределенная локальная переменная или метод `hi’ для
Я перепробовал много способов исправить это, но я не могу.
Ответ №1:
Вам нужно определить hi как helper_method
в вашем контроллере. Что-то вроде
class WelcomeController < ApplicationController
helper_method :hi
def hi
# your stuff here...
end
завершение
Смотрите http://apidock.com/rails/AbstractController/Helpers/ClassMethods/helper_method для получения дополнительной информации
Ответ №2:
Это не то, как вы используете методы контроллера. В 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
Ответ №3:
Эта статья может помочь вам :
Ruby on Rails: доступ к методам контроллера из вашего представления
Просто напишите:
<% @controller.hi %>
Комментарии:
1. Спасибо, это была проблема.