У меня есть таблица отношений с follow_id, follower_id и status.Я использую «имеет много сквозных» в моей пользовательской модели для создания ассоциации.У пользователя есть много последователей и он следует многим через обратную связь.Состояние по умолчанию «запрошено», когда пользователь следует за другим пользователем.
Итак, у пользователя есть список его подписчиков, и у каждого из них статус «запрошен».
В этом списке подписчиков мне нужна ссылка link_to с методом put или формойон просто находит это отношение и обновляет строку состояния до «утверждено».Кажется, это было бы довольно легко, но я искал несколько дней и не могу понять это.Это то, что у меня пока есть:
В users_controller это действие для изменения статуса с «запрошенного» на «одобренный»:
def activate
@user = User.find(params[:id])
params[:status] = {:status => 'approved'}
@user.status = params[:user][:status]
@user.save
render 'show_followers'
end
это в users_controller, чтобы вывести списокподписчики:
def followers
@title = "Followers"
@user = User.find(params[:id])
@users = @user.followers.paginate(:page => params[:page])
render 'show_followers'
end
здесь я определяю статус, который, вероятно, неверен в модели user.rb
def status
Relationship.status.find_by_follower_id(self)
end
, и на этой странице я показываю подписчиков:
<% unless @users.empty? %>
<% @users.each do |user| %>
<tr>
<td><%= image_tag user.avatar.url(:thumb) %></td>
<td><%= user.full_name %></td>
<td><%= user.company %></td>
<td><%= user.approval.status %></td>
<%end%>
<td><%= form_for @user, url: activate_user_path(@user), :html => { :method => :put } do |f| %>
<%= f.submit "approve" %>
<% end %>
</td>
</tr>
<%= will_paginate @users %>
<% end %>
Кто-нибудь знает, как я могу просто обновить эту строку в таблице отношений на "утверждено"?