2016-04-14 87 views
0

我正在RoR後端爲大型移動應用程序,目前與管理面板。從選擇存儲ID在紅寶石變量

我有兩個型號:ActivityDeal,加入HMT ActivitiesDeal。該連接在滑軌控制檯中進行了兩種測試,並且像魅力一樣起作用。

活動是應用程序構建的模型,因此管理員需要能夠以某種直觀的方式從「編輯活動」表單中爲活動添加交易。 我想這對於創建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 
+0

請說出你的問題。請說明,目前的實施過程中發生了什麼樣的行爲和發生了什麼問題。請擺脫無關的代碼。 – mudasobwa

+0

我認爲這裏的關鍵詞是* nested form *。 – rdupz

回答

0

通過使編輯頁面外的固定的form_for的問題。

如果有人需要的代碼:

<%= form_for @activity, as: :deal, :url => link_activity_deal_path(activity_id: @activity.id), method:'post' do |f|%> 
<%= f.collection_select :id, @deals, :id, :title %> 
<%= f.submit "Add Deal", class: "btn btn-primary" %>