2010-08-05 3 views
0

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

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

Проблема заключается в том, что патент не имеет ссылки, только логический «эксперт» и имя происходит от (принадлежит_to) «навыка», который содержит идентификатор и имя, которое можно сравнить.

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

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

Я хотел бы спросить: «Если @current_user имеет„эксперта“истинно на„патент“от того же„Skill“, что я хочу изменить, то покажите мне ссылку»

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

<% if @patent.skill.name 

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

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

+0

Не могли бы вы показать нам код от вашей модели? –

ответ

0

Я нашел решение: В patents_controller я смотрю на патент, где current_user является экспертом (состояние = 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 %> 

К сожалению, я понимаю, неясность вопроса ...

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