2016-08-11 40 views
0

注意:请参阅此链接获取更新的问题。我已经改写我的问题是试图一段时间后,其他更简洁:Ruby on Rails single form to update multiple records using loopRuby on Rails通过表格进行多表查询

我有一个页面来显示特定项目的所有投标人与bidders.html.erb如下:

<div id="titlebar" class="single submit-page"> 
 
    <div class="container"> 
 

 
    <div class="col-lg-10"> 
 
     <h2><i class="fa fa-bell"></i> Bidders</h2> 
 
    </div> 
 

 
    <!-- <div class="col-lg-2"> 
 
     <br> 
 
     <button type="button" class="btn btn-primary btn-lg"> 
 
      <i class="fa fa-list-alt"></i> Find Assignments 
 
     </button> 
 
    </div> 
 
    --> 
 
    </div> 
 
</div> 
 

 
<div class="container"> 
 
    
 
    <!-- Table --> 
 
    <div class="col-lg-12"> 
 

 
    <p class="margin-bottom-25"> Bids can be viewed or removed below.</p> 
 

 
    <table class="manage-table resumes responsive-table"> 
 

 
     <tr> 
 

 
     <th><i class="fa fa-genderless"></i> Gender</th> 
 
     <th><i class="fa fa-clock-o"></i> Experience</th> 
 
     <th><i class="fa fa-graduation-cap"></i> Education Level</th> 
 
     <th><i class="fa fa-money"></i> Expected Salary</th> 
 
     <th><i class="fa fa-file-text"></i> Status</th> 
 
     <th></th> 
 
     </tr> 
 

 
     <!-- Item #1 --> 
 

 
     <tbody> 
 
    <% @bidders.each do |bidder| %> 
 
     <tr> 
 
     <% if bidder.gender == 1 %> 
 
      <td>Male</td> 
 
     <% else %> 
 
      <td>Female</td> 
 
     <% end %> 
 

 
     <td><%= bidder.experience %></td> 
 
     <td><%= bidder.education.education %></td> 
 
     <td><%= bidder.expected_salary %></td> 
 
     <td><%= bidder.bid.status %></td> 
 
     <td class="action"> 
 
      <a href="#"><i class="fa fa-eye-slash"></i> Hide</a> 
 
      <a href="#" class="delete"><i class="fa fa-remove"></i> Delete</a> 
 
     </td> 
 
     </tr> 
 

 
     <!-- Item #1 --> 
 
    <% end %> 
 
    </tbody> 
 
    </table> 
 

 
    </div> 
 

 
</div>

而且我application_controller.rb是:

class ApplicationController < ActionController::Base 
 
    # Prevent CSRF attacks by raising an exception. 
 
    # For APIs, you may want to use :null_session instead. 
 
    protect_from_forgery with: :exception 
 
    
 
    def bidders 
 
    bidders_ids = Bid.where(bidders_params).pluck(:user_id) 
 
    @bidders = User.where(id: bidders_ids) 
 
    end 
 
    
 
    def after_sign_in_path_for(resource) 
 
    assignments_path #your path 
 
    end 
 

 
end

的数据库设计或多或少被描述如下:

enter image description here

的问题是,我需要与bidders.html.erb脚本转换为一个表单,允许帮助该特定项目的所有者通过将bidder.bid.status编辑为排名数字来接受并排名多个投标人。

请注意,用户可以是投标人,也可以创建项目供他人投标。

回答

0

它看起来像有造型的问题,在您的应用程序

也许这种方式应该会更好。

user.rb

def class User < ActiveRecord::Base 
    has_many :bids, class_name: 'Bid', :foreign_key => "user_iduser" 
end 
#controller.rb
def bidders 
    @user = User.find(params[id) 
end 
#鉴于
<% @user.bids.each do |bidder| %> 
    <tr> 
    <% if bidder.gender == 1 %> 
     <td>Male</td> 
    <% else %> 
     <td>Female</td> 
    <% end %> 

    <td><%= bidder.experience %></td> 
    <td><%= bidder.education.education %></td> 
    <td><%= bidder.expected_salary %></td> 
    <td><%= bidder.bid.status %></td> 
    <td class="action"> 
     <a href="#"><i class="fa fa-eye-slash"></i> Hide</a> 
     <a href="#" class="delete"><i class="fa fa-remove"></i> Delete</a> 
    </td> 
    </tr> 

    <!-- Item #1 --> 
<% end %> 

分析数据库设计和在这里看起来像你想有一个协会has_many :through,更多信息在guides rails

您需要查看有关n的更多信息相关捐资形成http://guides.rubyonrails.org/form_helpers.html#building-complex-forms

+0

我想这: http://stackoverflow.com/questions/38900349/ruby-on-rails-single-form-to-update-multiple-records-using-loop 更好地代表我的问题 – Benjamin