Я пытаюсь отменить подписку подписчиков через форму для удаления, в которой они вводят свой адрес электронной почты, а затем отправляют, а затем удаляют подписку. Не знаю, почему это не работает. Я пробовал несколько вещей через мой контроллер. Будут ли любить некоторые предложения или альтернативы.Удалить подписку с помощью формы Rails 4
В настоящее время получает эту ошибку
Couldn't find Subscription without an ID
подписки Контроллер
def destroy
@subscriptions = Subscription.all
@subscription = @subscriptions.find(params[:id])
if @subscription.email == params[:email]
@subscription.destroy
flash[:notice] = "You have been unsubscribed"
redirect_to root_path
else
end
end
Маршруты
Rails.application.routes.draw do
get 'password_resets/new'
get 'password_resets/edit'
get 'sessions/new'
get 'users/new'
resources :posts
root 'static_pages#new_home'
resources :subscriptions, only: [:new, :create, :edit, :update, :show, :destroy]
get '/home' => 'static_pages#home'
get 'subscriptions' => 'subscriptions#show'
delete 'subscriptions' => 'subscriptions#destroy'
get '/about' => 'static_pages#about'
get '/author' => 'static_pages#author'
get '/contact' => 'static_pages#contact'
get '/book' => 'static_pages#book'
get '/signup' => 'users#new'
get 'login' => 'sessions#new'
post 'login' => 'sessions#create'
delete 'logout' => 'sessions#destroy'
resources :users
resources :account_activations, only: [:edit]
resources :password_resets, only: [:new, :create, :edit, :update]
resources :posts do
resources :comments
end
end
Отказаться частичной подписка в просмотре
<%= form_for @subscription, method: :delete do |f| %>
<div class="row">
<h2>Unsubscribe</h2>
</div>
<div class="row newsletter">
<form method="post" action="#" class="contact-form">
<div class="row email-label">
<%= f.label :email, :class => 'label-email' %>
<%= f.email_field :email %>
</div>
<div class="row">
<%= f.submit 'Unsubscribe', :class => 'btn-full-subscribe' %>
</div>
</form>
</center
<% end %>
Я пробовал несколько вещей без везения. Помощь была бы оценена. Благодарю. Подписки не связаны с моделью пользователя.
Да, я попробовал просто «найти (params [: id])» раньше, и по какой-то причине он все еще выдавал ошибку. Однако я полностью забыл о поиске по имени атрибута. Благодарю. Попробуй –
Внесите изменения, а затем обновите свой вопрос, если вам нужна дополнительная помощь! – fbelanger
Когда я использую ID, он все равно дает мне Не удалось найти без ID. Но я хочу, чтобы ID был правильным? Я думаю, что часть вопроса здесь использует форму. Тем не менее, я не могу придумать какой-либо другой хороший способ сделать это, так как я не могу удалить подписку, если кто-то не отправляет свое электронное письмо, чтобы понять, какую подписку фактически удалить. –