在显示页面中更新多个check_box_tag

时间:2014-05-30 05:44:09

标签: ruby-on-rails ruby

我正在尝试更新显示页面中的多个复选框。我真的很困惑如何做到这一点,很多在线帮助真的让我困惑。我还是铁杆菜鸟。我正在使用rails 4。

*Edit*

我目前得到的错误是 Missing template lottery/create, application/create with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :raw, :ruby, :jbuilder, :coffee]}.

这是我的页面控制器

class LotteryController < ApplicationController

  before_filter :authenticate_user, :only => [:new, :show,:update]

  def new
    @winner = Lottery.pickWinner()
  end

  def show
    @conferences = Conference.all
    #@lead = Lead.all
    @leads = Lead.new
  end

  def update
  end
end

以及此控制器的show.html.erb页面

     <body> 
      <%= form_tag do %>
    <% @conferences.each  do |c| %>

    <table class = 'table table-striped table-responsive table-bordered table-  condensed'>
        <h1> Conference : <%= c.name %> </h1>
        <tr>
            <td><b>First Name</b></td>  
            <td><b>Last Name</b></td>
            <td><b>Email</b></td>   
            <td><b>Department</b></td>  
            <td><b>Title</b></td>
            <td><b>Company</b></td> 
        </tr>
        <tr>
            <% @leads.get_lead_by_conference(c.id).each do |l| %>
                <td>  <%= l.lead_first_name %> </td>
                <td>  <%= l.lead_last_name  %> </td>
                <td> <%= l.email %> </td>
                <td> <%= l.department %></td>
                <td> <%= l.title %> </td> 
                <td><%=l.account_name %> </td>

            <td><label for="lead">Enable for Lottery</label><br/>
        <%= check_box_tag "leads_checkbox[]",l.id %> <%= l.lotter_flag %> 

            </td>

        </tr>
            <% end %>
    </table>    

   <% end %>
 <%= submit_tag "select Winners" %> 
  <%end %> 


</body>

Edit my get_lead_by_conference_id(conf_id ) under Lead model

def get_lead_by_conference(conf_id)
        #  get all leads that correspond with conf id
     Lead.where(:conference_id => conf_id)
end 

所以我正在尝试做的是在我的展示页面中,我有多个由这些会议分隔的表格。在每个会议中我都有一个领导,我想在每个会议中选出一个获胜者。 Leads模型中的布尔值属性为lotter_flag。我想在点击提交按钮后用标记的复选框更新所有这些潜在客户。已经踩到的一些事情是我在不同的控制器下更新Leads模型。在此先感谢,如果我有格式错误,我会道歉。

1 个答案:

答案 0 :(得分:1)

问题在于您的show method,您已经 @lead = Lead.all ,而在show.html.erb,您正在使用 @leads < / strong>实际上是Lead.new中的 show method 。它没有任何意义,字面意思是你正在执行 each Lead.new 这是错误的。

尝试更改show method这样的

def show
@conferences = Conference.all 
@leads = Lead.all
@lead = Lead.new 
end 

注意: 根据{{​​1}},Controller类名应为 Rails Covention 。在您的情况下,它应该是 plural 而不是 { {1}} 即可。虽然现在 LotteriesController 不是问题,但始终建议使用。

<强>更新

关于您的错误,Rails实际上正在寻找名为 LotteryController 的文件。

您应该更改 convention 中的form_tag

create

您也应该在控制器中使用 show.html.erb 方法。