2016-01-19 7 views
0

Я пытаюсь сделать приложение в Rails 4. Я использую программу для проверки подлинности и эксперта для авторизации. Я хочу использовать разрешения Rolify для роли.Rails 4 - Настройка Rolify с помощью devise и pundit - отношения

Я разместил этот вопрос и получил несколько полезных советов. Defining Roles with Rolify

Я создал контроллер и виды, потому что хочу, чтобы роли назначались другими пользователями и подчинялись критериям (например, периоды владения, например: студент будет выполнять роль студента до конца своей даты курса) ,

Я также хочу иметь возможность добавлять новые роли по мере того, как приложение расширяется.

Я использовал seeds.rb для создания начальных ролей. Я еще не ограничил использование ролей администратором, но сделаю политику сообщества, чтобы сделать это, как только у меня это настроено и работает.

У меня нет большого опыта в отношениях HABTM, и я застрял в попытке понять, как они работают.

Я хочу создать страницу показа для своих ролей - которая показывает каждого пользователя, которому была назначена роль.

у меня есть:

<div class="formheader"><td><%= @role.name %></td></div> 
     <div class="row"> 
        <div class="table-responsive" style="margin-left:30px; margin-top:15px"> 
         <table class="table table-bordered"> 
          <tr> 
          <td><span class="intpolth">User</span></td> 
          <td><span class="intpolth">Commenced</span></td> 
          <td><span class="intpolth">Terminated</span></td> 

          </tr> 


             <% @roles.user.each do |role| %> 

           <tr> 
            <td><%= user.formal_name %></td> 
            <td></td> 
            <td></td> 
            <td></td> 
            <td></td> 
            <td></td> 
           </tr>        
          <% end %> 

На данный момент, я думаю, что моя ошибка может быть больше, чтобы сделать с тем, как выразить HABTM присоединяется чем, как работать с Rolify - но кто может видеть то, что я сделал неправильно ? Цель этой таблицы - составить список каждого имени пользователя, которому была выделена соответствующая роль.

Я получаю сообщение об ошибке при попытке это:

undefined method `user' for nil:NilClass 

Я заметил, что мое rolify Миграции сделала присоединиться к таблице под названием «users_roles». Я понял, что соглашение является именем таблицы, которое было указано в алфавитном порядке и что первое имя таблицы было сингулярным, а не множественным. Может ли это иметь какое-то отношение к моей проблеме?

Все, что я на данный момент является методом в моей модели пользователя, который говорит:

after_create :add_default_role 

    def add_default_role 
    add_role(:guest) if self.roles.blank? 
    end 

Я сделал роли в моем seeds.rb, которые включают в себя: гость.

Моя консоль показывает, у меня есть эта роль:

Role Load (4.2ms) SELECT "roles".* FROM "roles" WHERE "roles"."name" = $1 [["name", "guest"]] 
=> #<ActiveRecord::Relation [#<Role id: 23, name: "guest", resource_id: nil, resource_type: nil, created_at: "2016-01-16 09:46:16", updated_at: "2016-01-16 09:46:16">]> 

Я просто начать и изо всех сил, чтобы понять, как это работает.

Я должен сказать, что генератор для этого драгоценного камня сделал образец для подражания, но в нем ничего нет. Нужно ли мне что-то добавлять в ролевую модель, чтобы заставить это работать?

class Role < ActiveRecord::Base 



end 
+0

@roles является 'nil'. Можем ли мы видеть, что вы назначаете '@ role'? – mrdougwright

ответ

0

вместо <%= user.formal_name %>,

попробовать <%= role.formal_name %>

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