2013-07-18 1 views
1

Я изучаю рельсы, используя учебник teamtreehouse. Учебник использует 3.1, но я пытаюсь изучить 4.0, и в результате я столкнулся с трудностью, по-видимому, потому что рельсы 4 силы использования сильных параметров. У меня две модели, модель пользователей и модель статусов. Я использовал программу для создания аутентификации для пользователей и включил новые параметры. Это: first_name,: last_name и: profile_name. Я создал отношения между пользователями и статусами.Доступ к пользовательским параметрам при использовании Devise and Rails 4

В настоящее время работает регистрация пользователей с новыми параметрами; Я могу получить к ним доступ, используя, например, current_user.last_name. Тем не менее, я хочу показать имя_файла пользователя, создавшего сообщение в представлении индекса статуса (у каждого пользователя еще нет отдельной страницы). Я хочу это сделать, используя

status.user.profile_name 

Однако он просто отображается пустым. Если я делаю status.user.email (который является предварительно сконфигурированным параметром разработки), это не вызовет проблем. Я предполагаю, что мне нужно перечислить эти параметры в каком-то контроллере, но я не знаю, где и как. Thanks

ответ

3

добро пожаловать на борту. :) Rails просто потрясающе, и вам действительно понравится это путешествие. :)

Я думаю, здесь вы найдете ответ на свой вопрос: https://github.com/plataformatec/devise/tree/rails4#strong-parameters

Основываясь на приведенной выше ссылке, я думаю, вы должны вставить что-то вроде этого в вашем ApplicationController:

class ApplicationController < ActionController::Base 
    before_filter :configure_permitted_parameters, if: :devise_controller? 

    protected 

    def configure_permitted_parameters 
    devise_parameter_sanitizer.for(:user) { |u| u.permit(:profile_name) } 
    end 
end 

И я уже предложил в Предыдущий вопрос ... Strong parameters with Rails and Devise

... что вы можете создать свой собственный контроллер, который мог бы расширить собственный контроллер. Существует сущность для этого: https://gist.github.com/bluemont/e304e65e7e15d77d3cb9

Немного больше деталей в DEViSE документе: https://github.com/plataformatec/devise/tree/rails4#configuring-controllers

Надеется, что это может помочь, и дайте мне знать, что случилось.

+0

Он работал, когда я переключил: пользователь с: sign_up. Из моего чтения: пользователь будет работать, если я переписал метод user_params в контроллере. Это то, чего я хотел избежать ... (я должен узнать, потому что реальная настройка устройства должна быть невозможной без этого). – kempchee

 Смежные вопросы

  • Нет связанных вопросов^_^