Rails - Block Arguments - 展平表达式

时间:2015-12-29 22:34:02

标签: ruby-on-rails codeblocks

我正在尝试在Rails 4中创建一个应用程序。

我收到与此索引中的方法相关的此错误消息:

 both block arg and actual block given

方法是:

<% Profile.try(:qualification).all.sort_by(&:profile.qualification.year_earned) do |qual| %>

        <div class="row">
              <% qual.each do |qualification| %>
                  <div class="col-md-12">
                    <div class="profilequalifications">
                        <%= @profile.try(:qualification).try(:title) %>
                    </div>  
                  </div>    
        </div>

        <div class="row">
                <div class="col-md-4">
                    <div class="intpolmin">
                        <%= @profile.try(:qualification).try(:year_earned) %>: 
                    </div>  
                </div>
                <div class="col-md-8">
                    <div class="intpolmin">
                        <%= @profile.try(:qualification).try(:institution) %>
                    </div>  
                </div>
        </div>  
                <% end %>
          <% end %>

我可以从这篇文章中看到: SyntaxError: (irb):26: both block arg and actual block given

我正在使用do | qual |和d0 | qualificaiton |我认为这是问题的要点,但我无法找到解决方案。谁能看到我做错了什么?

1 个答案:

答案 0 :(得分:0)

您不应该使用枚举blockdo...end子句的情况,并作为参数方法的名称传递以应用枚举(在您的情况下,通过{{1中包含的值) }}:

所以选择:

profile.qualification.year_earned

Profile.try(:qualification).all.sort_by(&:profile.qualification.year_earned)