2011-07-05 27 views
0

我有一個標準的設計安裝,我試圖添加功能從管理面板添加一個健身房會員的用戶。試圖使用設計創建用戶與會員使用設計 - 需要幫助控制器

的routes.rb

devise_for :users 

    resources :users 

我創建從健身房控制器的用戶,所以這是我的健身房行動

def members 
    @gym = Gym.find(params[:id]) 
    @user = User.new 
    @user.gym_users.build 
    @roles = Role.all 
    end 

的gym_user在用戶模式接受

accepts_nested_attributes_for :gym_users 

然後這裏是我的表格的一部分

<%= form_for @user do |f| %> 

<%= f.label :email %><br /> 
<%= f.text_field :email %> 

<% f.fields_for :gym_users do |builder| %> 

    <%= builder.label :item_id, "Membership Level" %><br /> 
    <%= builder.collection_select(:item_id, @gym.membership_items, :id, :name, {:include_blank => true}) %> 

<% end %> 

<%結束%>

什麼我遇到的麻煩是我的用戶控制器在那裏我居然創建用戶。這對於用戶創建

match 'gyms/:id/members' => 'gyms#members' 

最後成員頁面的路線,這裏是我的users_controller create方法

def create 
@user = User.new(params[:user]) 

if @user.save 
    :notice => "User created successfully" 
    render :new 
else 
    render :new 
end 

什麼我不知道是怎麼發生錯誤時發送回該網址,以便我的模型錯誤與其一起發送,或在正確完成時重定向。

+0

爲什麼你不在用戶體內創建用戶#成員操作?如果在那裏會出現一些錯誤,那麼將在用戶和驗證錯誤等填​​充所有字段的情況下渲染approproate視圖。 – Hck

回答

0

我解決了這個問題,使它成爲一個ajax調用,它消除了重定向的需要。