2015-04-25 72 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 %> 
相关问题