Ruby on rails Rails以嵌套属性形式访问控制器动作

Ruby on rails Rails以嵌套属性形式访问控制器动作,ruby-on-rails,forms,controller,nested,nested-forms,Ruby On Rails,Forms,Controller,Nested,Nested Forms,我有一个嵌套表单,用于成员资格,带有嵌套的成员资格邀请: <%= form_for [@user, @car, @membership] do |f| %> <%= f.hidden_field :car_id, class: "form-control", value: @car.id %> <%= f.fields_for :membership_invites do |builder| %> <% @code = Digest:

我有一个嵌套表单,用于成员资格,带有嵌套的成员资格邀请

<%= form_for [@user, @car, @membership] do |f| %>
  <%= f.hidden_field :car_id, class: "form-control", value: @car.id %>
  <%= f.fields_for :membership_invites do |builder| %>
      <% @code = Digest::SHA1.hexdigest([Time.now, rand].join) %>
      <%= builder.hidden_field :car_id, class: "form-control", value: @car.id %>
      <%= builder.hidden_field :invite_code, class: "form-control", value: @code %>
      <div class="form-group"> 
          <%= builder.label :user_email %>
          <%= builder.text_field :user_email, class: "form-control" %>
      </div>
  <% end %>
  <%= f.submit "Add Member", class: "btn btn-large btn-primary" %>
<% end %>

实际上,我已经在我的模型中通过一个after_create方法实现了这一点。如果有人知道更好的方法,请告诉我

型号 创建后:发送邀请

def send_invite

    @user = User.where(email: self.user_email).first

    unless @user.blank?
        @membership = Membership.find(self.membership_id)
        @membership.update_attributes(:user_id => @user.id)
    else
        InviteMailer.new_invite(self).deliver
    end
end
def send_invite

    @user = User.where(email: self.user_email).first

    unless @user.blank?
        @membership = Membership.find(self.membership_id)
        @membership.update_attributes(:user_id => @user.id)
    else
        InviteMailer.new_invite(self).deliver
    end
end