Rails: взаимоотношения (Relationships)

программирование ruby ruby on rails rails

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

Есть две таблицы - users и relationships. Пользователи могут друг друга добавлять и удалять (грубо говоря, т.к. функционал немного не на то направлен), в общем, создавать связи.
При создании связи используется код:

<%= form_for current_user.relationships.build(:allowed_id => @user.id),
:remote => false do |f| %>
<div><%= f.hidden_field :allowed_id %></div>
<div class="actions">
<%= f.submit "Добавить" %>
</div>
<% end %>

При удалении связи используется код:

<%= form_for current_user.relationships.find_by_allowed_id(@user),
:html => { :method => :delete },
:remote => false do |f| %>
<div class="actions">
<%= f.submit "Удалить" %>
<% end %>
</div>
<% end %>

Таким образом первый код вызывает метод create:

def create
@user = User.find(params[:relationship][:allowed_id])
current_user.allow!(@user)
respond_with @user
end

Второй код вызывает метод destroy

def destroy
@user = Relationship.find(params[:id]).allowed
current_user.disallow!(@user)
respond_with @user
end

Не могу понять, как изменить вторую форму так, чтобы она приводила не к удалению записи из БД, а к изменению одного из столбцов таблицы (:freeze => true) для этой записи.

Примечание:
Со сменой аттрибута :freeze разобрался, его не там надо было задавать.
Ответы:
Форма сама по себе ничего удалять не может. Конкретизируйте вопрос.


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.