Я работаю над бэкэндом RoR для большого мобильного приложения, в настоящее время с панелью администратора.Хранение идентификатора из select в переменной ruby
У меня есть две модели: Activity
и Deal
, соединенные HMT ActivitiesDeal
. Соединение проверяется обеими способами в консоли rails и работает как шарм.
Активность - это приложение, на котором построено приложение, поэтому администраторы должны иметь возможность добавлять предложения к деятельности из формы «Редактировать активность» интуитивно. Я попытался это для создания activities_deal:
<%=select("deal", @deal_id, Deal.all.collect {|d| [d.title, d.id]}, {})%>
<%= link_to "Add", link_activity_deal_path(activity_id: @activity.id, deal_id: @deal_id), method:'post' %>
Но это не работает, как я думал. Любые идеи о том, как отправить правильный deal_id в link_activity_deal_path? Это похоже на проблему, которая была решена много раз, но я могу найти все, что подходит.
ActivitiesDealsController:
class ActivitiesDealsController < ApplicationController
def create
@activity = Activity.find(params[:activity_id])
render file: 'public/404.html' and return unless @activity && Deal.find(params[:deal_id])
@activity_deal = ActivitiesDeal.new
@activity_deal.activity_id = params[:activity_id]
@activity_deal.deal_id = params[:deal_id]
if @activity_deal.save
redirect_to proc {activity_url @activity}
end
render file: 'public/500.html'
end
def destroy
p params
@activity = Activity.find(params[:activity_id])
render file: 'public/404.html' and return unless @activity
@activity_deal = ActivitiesDeal.where("activity_id == ? AND deal_id == ?", params[:activity_id], params[:deal_id])
render file: 'public/404.html' and return unless @activity_deal
ActivitiesDeal.destroy(@activity_deal)
redirect_to proc {activity_url @activity}
end
end
Пожалуйста, укажите ваш вопрос. Укажите, каково желаемое поведение и что случилось в текущей реализации. Пожалуйста, избавитесь от несвязанного кода. – mudasobwa
Я думаю, что ключевое слово здесь * вложенная форма *. – rdupz