2015-04-25 109 views
1

我想從視圖中的「每個」循環向控制器傳遞參數。我有一份合同清單。 「合同」模式具有「簽名」屬性,如果合同已簽署,則屬性爲零或包含日期時間。我想列出視圖中的所有合同,並在合同簽署時呈現靜態部分,或者在合同未簽署時呈現鏈接以簽署合同。我開始通過與方法一起呈現在查看我的合同清單:軌道在視圖中傳遞「每個」參數到控制器

<%@contract.each do |contract| %> 
<%= @contract.reference %> 
<%= show_either_static_if_signed_or_link_if_not_signed %> 

在我的助手,我定義一些基本的代碼幹run方法來嘗試對合同

def show_either_static_if_signed_or_link_if_not_signed 
    @contract = Contract.find(1) 
    if @contrat.signed.nil? 
    render 'contracts/static_template' 
    else 
    render'contracts/template_with_a_link_to_sign_the_contract' 
end 
第一

這適用於第一份合同。我現在要爲我的模板的「每個」循環中的每個合同部署此代碼。我試圖

def show_either_static_if_signed_or_link_if_not_signed(contract) 
    if contrat.signed.nil? 
    render 'contracts/static_template' 
    else 
    render'contracts/template_with_a_link_to_sign_the_contract' 
end 

但「我得到錯誤的參數數目(0 1)」,因爲我無法獲得從模板到控制器的「契約」的說法。任何人都可以提供給我適當的語法來將我的視圖的「每個」循環的參數傳遞給輔助方法嗎?處理這個問題的其他建議也是受歡迎的。謝謝。

回答

0

您的幫手方法show_either_static_if_signed_or_link_if_not_signed期待1個參數,但是,您從視圖中調用它時沒有傳遞任何參數。

更新查看傳遞所需的參數如下:

<% @contract.each do |contract| %> 
    <%= contract.reference %> 
    <%= show_either_static_if_signed_or_link_if_not_signed(contract) %> 
    ... 
    ... 
<% end %> 
0

您需要時調用輔助方法合同傳遞......

<%@contract.each do |contract| %> 
    <%= contract.reference %> 
    <%= show_either_static_if_signed_or_link_if_not_signed(contract) %> 
<% end %> 
相關問題