rails build的应用

一、has_many

#crowdfunding表的字段有
id, name, created_at, updated_at

#unit_price表的字段有
id, platform_id,crowdfunding_id,price,created_at,updated_at

#platform表的字段
id,name

model/crowdfunding.rb

has_many :unit_prices, dependent: :destroy
accepts_nested_attributes_for :unit_prices

model/unit_price.rb

belongs_to :platform

controller/crowdfunding_controller.rb

def new
  @crowdfunding = Crowdfunding.new
  @crowdfunding.unit_prices.build
end


def  create
  @crowdfunding.new(crowdfunding_params)
end


private
def crowdfunding_params
    crowdfunding_fields = Crowdfunding.column_names - ['id', 'created_at', 'updated_at']
    unit_prices_fields = ["platform_id", "price", "max_quantity", "min_quantity"]
    params.require(:crowdfunding).permit(*crowdfunding_fields, unit_prices_attributes: unit_prices_fields)
end

crowdfunding.html.erb

<style>
.dis_no{display:none}
</style>
<% index = 1 %>
  <%= f.fields_for :unit_prices do |unit_price| %> 
    <div class="row dis_no">
        <div class="form-group required">
          <%= unit_price.label '投放平台' %><br>
          <%= unit_price.collection_select(:platform_id, Platform.all,:id,:name,{:include_blank => '请选择'}, {class: 'form-control mr20'}) %>
          <%= unit_price.text_field :price, class: 'form-control', placeholder: '输入价格' %> 
        </div>
        <div class="form-group required min_<%= index %>_qua">
          <%= unit_price.label '最低认筹量' %><br>
          <%= unit_price.number_field :min_quantity, class: "form-control" %>
          <%= unit_price.label '箱', class: 'text-right col_red', style: 'flex:0 0 25px;' %><br>
        </div>
        <div class="form-group required max_<%= index %>_qua">
          <%= unit_price.label '最高认筹量' %><br>
          <%= unit_price.number_field :max_quantity, class: "form-control" %>
          <%= unit_price.label '箱', class: 'text-right col_red', style: 'flex:0 0 25px;' %><br>
        </div>
    </div>
    <% index +=1 %>
  <% end %>

<script>
$(".dis_no:first").removeClass("dis_no").addClass("show");
$(".add").click(function(){
  $(".dis_no:first").removeClass("dis_no");
  if($(".dis_no").length == 0){
    $(this).empty()
  }

})
$(".btn-warning").click(function(){
  var length = $(".show").length
  for (var i=1;i<=length;i++){
    if($(".min_"+i+"_qua").find("input").val() < 1){
      alert("第"+i+"排最低认筹量不能小于1");
      return false;
    }
    if($(".max_"+i+"_qua").find("input").val() < 1){
      alert("第"+i+"排最高认筹量不能小于1");
      return false;
    }
    if(parseInt($(".max_"+i+"_qua").find("input").val()) < parseInt($(".min_"+i+"_qua").find("input").val())){
      alert("第"+i+"排最高认筹量不能小于第"+i+"排最低认筹量"); return false;
    }
  }
})
</script>

has_one

class User < ActiveRecord::Base
  attr_accessible :email, :account_attributes
  has_one :account
  accepts_nested_attributes_for :account
end


class Account < ActiveRecord::Base
  attr_accessible :password, :password_confirmation
  has_secure_password
  belongs_to :user 
end


class UsersController < ApplicationController
  def new
    @user = User.new
    @user.build_account
  end
end

view

<%= form_for @user do |f| %>
  email: <%= f.text_field :name %>
  <%= f.fields_for :account do |account_form| %>
    password: <%= account_form.password_field :password %>
    password_confirmation: <%= account_form.password_field :password_confirmation %>
  <% end %>
<% end %>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值