2017-08-13 49 views
3

我的第一個SO發佈。終於找到了一些令我難堪的東西,在6個多小時後,我決定需要一些幫助,然後我纔會失去理智。過濾器通過使用降collection_select user.id下來形式

我試圖使用collection_select的下拉列表中的一個字段在第二模型來創建一個新的記錄。我的目標是填充由個人用戶從帳戶模型(共享數據庫)創建的記錄列表,以在名爲資產的新模型中創建記錄。

我設置的帳戶形成存儲自動生成誰創建的條目用戶記錄ID,所以我應該能夠以某種方式引用它。

此時在下拉列表和出租車要保存的數據填充,但它顯示了所有的所有用戶,而不是隻有那些誰在創建新條目的用戶造人時的條目。

我敢肯定有某種方式c​​urrent_user.id進行過濾。我嘗試了100我在網上找到的東西,最近我可以得到一個無效的參數錯誤,當它返回一個代表我想要的用戶ID的整數。

表單標籤:

<%= form.label :asset_location, id: :asset_asset_location %> 
<%= collection_select(:asset, :asset_location_id, Account.all, :id, :account_name, {}, {:multiple => false}) %> 

控制器標籤:

respond_to do |format| 
    @asset.user_id = current_user.id if current_user 
    if @asset.save 
    format.html { redirect_to asset_path} 
    format.json { render :show, status: :created, location: @asset } 
    else 
    format.html { render :new } 
    format.json { render json: @asset.errors, status: :unprocessable_entity } 
    end 
end 

我敢新的Ruby/Rails並試圖找出是否有更好的方法來過濾填充的結果下拉由current_user.id

我字面上一直在徹夜狂歡,直到它的權利不要睡覺計劃,所以任何幫助將不勝感激。哈哈哈

回答

1

你應該能夠引用與current_user.accounts的用戶創建的accounts,所以只用current_user.accounts

<%= form.label :asset_location, id: :asset_asset_location %> 
<%= collection_select(:asset, :asset_location_id, current_user.accounts, :id, :account_name, {}, {:multiple => false}) %> 
更換 Account.all