2011-12-04 62 views
1

Ruby上的新手這裏,我已經成功地構建了一個HTML表單,其中用戶的「項目」模型可以「跟隨」(或者我已經說過「pfollow」)其他「工廠「 楷模。唯一的問題是,當用戶試圖在一個表單上「追蹤」多個工廠時,我創建的代碼無法工作,這迫使用戶多次點擊「提交」以獲取更多工廠。如果用戶一次從選擇框中選擇多個工廠,那麼我的「項目」模型和我的「預關係」控制器就會扼殺輸入,該輸入將以數組形式出現,而不是預期的單個整數(又名「pfollower_id」來自「prelationships」控制器用於其創建操作的工廠)。Rails在一種形式中構建多個關係

如何讓我的應用程序接受「pfollower_id(s)」數組,然後創建多個工廠預安排?

以下是錯誤:

undefined method `id' for #<Array:0x26abe70> 
app/models/project.rb:35:in `pfollow!' 
app/controllers/prelationships_controller.rb:6:in `create' 
Request 

Parameters: 

{"utf8"=>"âœ「", 
    "authenticity_token"=>"NKqa1f0M2yPLQDHbRLnxl3SiwBeTus/1q1hpZjD7hgY=", 
    "prelationship"=>{"pfollower_id"=>["4", 
    "5"]}, 
    "project_id"=>"90", 
    "commit"=>"Pfollow"} 

我 「prelationships」 控制器:

class PrelationshipsController < ApplicationController 

    def create   
    @project = Project.find(params[:project_id])         
    @plant = Plant.find(params[:prelationship][:pfollower_id]) 
     @project.pfollow!(@plant) 
    respond_to do |format| 
    format.html { redirect_to @project } 
    format.js 
    end 
    end  
end  

與嫌疑人 「pfollow!」在我的模型的跟蹤表明方法也是有罪的:

def pfollow!(pfollowed) 
    prelationships.create!(:pfollowed_id => pfollowed.id) 
    end   

形態正常工作,所以它只是這個控制器和控制方法無法處理pfollower_ids的數組。

我非常渴望幫忙!任何方向都將非常有幫助。

回答

1

與控制器的each方法打破它:d

params[:prelationship][:pfollower_id].each do |p| 
@project.pfollow!(Plant.find(p)) 
end 

我猜測,如果只有一個參數是返回,以及這會工作。完全沒有完全

+0

即使只有一個參數,它也可以工作。 Friggin'驚人的。非常感謝,Trip! –

相關問題