私は登録のために考案し使用していますし、フォームネストされたフォームは
ユーザモデル
class User < ActiveRecord::Base
has_many :languages_users
has_many :languages, :through => :languages_users
accepts_nested_attributes_for :languages_users
end
registrations_controllerに表示されていない巣にサインアップしてのみ、そのセクションのためのフォームをしようとしています表示されません.RB
class Users::RegistrationsController < Devise::RegistrationsController
before_filter :configure_sign_up_params, only: [:create]
def new
build_resource({})
resource.languages_users.build
respond_with self.resource
end
def create
super
end
protected
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) { |u|
u.permit(:email, :password, :password_confirmation, :bio, :location, :last_name, :first_name, :nationality, :avatar, languages_users_attributes: [:language_id, :level]) }
end
end
sign_up形態の要部
<%= form_for(resource, as: resource_name, url: "users/registration_path(resource_name)") do |f| %>
<%= f.fields_for :languages_users do |lu| %>
<br>
<div class="fields">
<%= lu.collection_select(:language_id, Language.order('language ASC').all, :id, :language) %><br>
<%= lu.hidden_field :level, value: 1 %>
</div>
<% end %>
<% end %>
の
関連するルート
Rails.application.routes.draw do
resources :languages
resources :languages_users
devise_for :users
end
任意の洞察力をいただければ幸いです!
こんにちは、あなたが登録#新しいコントローラとビューの間でリソースを再ロードすることによって何を意味し合う場合は、この最後の関係タイプを使用しようか?私は上に置いたものを除いて究極的に何も変えていない - 私は別のステップを逃している?また、languages_usersは言語とユーザー・モデルの間の結合表であり、したがって名前です。 – gwalshington
1)あなたのレイアウトビューテンプレートではおそらく 2)あなたのlanguage_userモデルにロジックがない場合、このモデルにもっとたくさんのものを入れるつもりなら、ユーザーと言語の間にhas_and_belong_to_many関係を使用することができます言語の流暢なレベル)私はそれを名前を変更します。 – nicolas
私は上のビューを置くので、私はそうは思わない。 – gwalshington