сравнить данные на рубине - PullRequest
0 голосов
/ 05 августа 2010

У моих пользователей есть несколько «Патентов».На нем указан логический «Эксперт», определяющий уровень.

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

Проблема в том, чтоПатент не имеет ссылки, только логическое «Эксперт» и имя происходят от (принадлежат_) «Навыка», которые содержат идентификатор и имя, которое можно сравнивать.

Например, я могу проверить, является ли мой зарегистрированный пользователь создателем "Умения".как это:

<% if @patent.skill.user == @current_user %>
  <td><%= link_to 'Edit', edit_patent_path %></td>
<% else %>
<% end %>

Я хотел бы спросить: «Если у @current_user есть« Эксперт », значение true для« Патента »из того же« Навыка », который я хочу редактировать, то покажите мнессылка "

Я должен начать с:

<% if @patent.skill.name

Но не в состоянии найти что-то, что может посмотреть в current_user, который ничего не содержит, только имя и другая информация.

Спасибо за вашу помощь, чтобы понять, как я могу попробовать

1 Ответ

0 голосов
/ 22 августа 2010

Я нашел решение: в патентах_контроллере я ищу патент, где текущий_пользователь является экспертом (состояние = 1).

helper_method :is_expert?

private

def is_expert?
  Patent.find(:first, :conditions => {:user_id => @current_user, :skill_id => @patent.skill.id, :state => 1})    
end

В контроллере я просто поставил условие

<% if is_expert? %>
    <%= link_to 'Edit', edit_patent_path %>
<% end %>

Извините, я понимаю неопределенность вопроса…

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...