0

bookManager をどのように構築すると思われるのか疑問に思っています。彼が従ったモデル

|-------------|1---------*|-------------|
| Customer    |           | BookManager |
|-------------|           |-------------|
| ID          |           | ID          |
| First       |           | customer_id |
| Last        |           | isDeleted   |
| Email       |           | isVisible   |
| Password    |           | description |
|-------------|           |-------------|

協会は以下の通り

class Customer < ActiveRecord::Base
# RELATIONSHIP
    has_many :book_managers
    accepts_nested_attributes_for :book_managers, allow_destroy: :true
    attr_accessible :admin, :first_name, :last_name, :middle_name, :email, :email_confirmation, :password, :password_confirmation, :image, :book_managers_attributes,  :locale
end

class BookManager < ActiveRecord::Base
    belongs_to :customer
    attr_accessible :customer_id, :visible, :description
end

フォームはこの Customer#edit ビューのようなものです

  <h3>Book</h3>
  <div><%= render 'book_managers/form' %></div>

ブックマネージャー/フォーム

<%= form_for(@book_manager) do |f| %>
  <fieldset>
    <%= f.label :description %>
    <%= f.text_field :description %>
  </fieldset>

  <fieldset>
    <%= f.check_box :visible %>
    <%= f.label :visible %>
  </fieldset>

  <div class="actions">
    <%= f.submit %>
  </div>

これが大賞パズルです。コントローラー 現時点では、BookManager コントローラーには何もありません。これは、呼び出し元がデータ情報を持っている傾向があるためです。しかし、私は顧客のコントローラーについて本当に混乱しています。

私が望むのは、BookManager を顧客とその属性に関連付けて埋めることです。ここに私が今持っているものがあります。

カスタマーコントローラー

        @customer = Customer.find(params[:id])

#       @book_manager = BookManager.new
#       bm = @customer.book_managers.build
#       bm.books.build

        @book_manager = @customer.book_managers.build
4

1 に答える 1

0

fields_forと呼ばれるものを使用して、子モデルを構築します

<%= form_for @customer do |customer_form| %>
  First name: <%= customer_form.text_field :first_name %>
  Last name : <%= customer_form.text_field :last_name %>
  <%= fields_for @book_manager do |book_manager_fields| %>
    Admin?  : <%= book_manager_fields.check_box :admin %>
  <% end %>

  <%= f.submit %>
<% end %>

この性質の何か。したがって、送信すると、すべてのデータがパラメータにまとめて投稿されます。

@customer.saveブックマネージャーも節約できます

于 2012-08-10T00:22:55.410 に答える