尝试使用Devise创建具有会员资格的用户 - 需要帮助控制器

时间:2011-07-05 03:46:57

标签: ruby-on-rails-3 forms routes nested-forms

我有一个标准设计安装,我正在尝试添加功能,以便从管理面板添加具有健身房成员资格的用户。

的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 %>

&lt;%end%&gt;

我遇到的问题是我实际创建用户的用户控制器。这是创建用户的成员资格页面的路径

 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

我不确定如何在发生错误时发送回该网址,以便我的模型错误随之发送,或在正确完成时重定向。

1 个答案:

答案 0 :(得分:0)

我通过将其作为ajax调用解决了这个问题,从而消除了重定向的需要。