zoukankan      html  css  js  c++  java
  • rails 在view中引用关联model值

      今天遇到一个问题。情景是这样的,有一张表invite和一张group表。group跟invite是一对多关系即

      

    group.rb
        has_many :invites
    
    invite.rb
       belongs_to :group

      在创建invite的时候需要同时添加其属于那个group,这是我就蛋疼了。于是上网找资料,从afly中那边获知了fields_for这么一个帮助程序。

      在invite的new.html.erb中如下写

      

    <%= form_for(@invite) do |f| %>
            <div class="field">
                发送给<%= fields_for :receiver,@invite.receiver do |receiver_field| %>
                    <%= receiver_field.text_field :name %>
                <% end %>
            </div>
            <div class="field">
                添加到<%= fields_for :group,@invite.group do |group_field| %>
                    <%= group_field.text_field :name %>
                <% end %>
            </div>
            <div class="field">
                <%= f.submit "确定"%>
            </div>
        <% end %>

    receiver是接收着,与user表是一对多的关系。这样就可将invite.receiver跟invite.group赋值好了。

    下面介绍后台代码的处理

    receiver_name = params[:receiver][:name]
        group_name = params[:group][:name]
        @receiver = User.find_by_name(receiver_name)
        @group = Group.find_by_name(group_name)

    通过http request中的params获得值。当时我很困惑params={"utf8"=>"✓", "authenticity_token"=>"yqinI6UF9qiGdBEmP3pNTTbZouSrnEK3f0u1ZZMAqHA=", "receiver"=>{"name"=>"Tom"}, "group"=>{"name"=>"杭电学生会"}, "commit"=>"确定"}

    但是params[:receiver].name报错,原来处理应该按照上面的来,ruby真心奇葩。。。

  • 相关阅读:
    区块链:交易收发机制
    区块链:POA委员会选举机制
    区块链:POA区块生成机制
    区块链:最小可行区块链原理解析2
    基于 react 的Java web 应用—— 组件复用(后续需更新)
    struts2验证码
    struts2验证码
    struts2验证码
    struts2验证码
    axis2 411
  • 原文地址:https://www.cnblogs.com/itmangelihai/p/3045906.html
Copyright © 2011-2022 走看看