【问题标题】:Forms with routes in Rails 4.1Rails 4.1 中带有路由的表单
【发布时间】:2015-02-21 22:37:04
【问题描述】:

Rails 4.1,到达知道编辑和再次使用_form.html.erb 的驱动程序。我尝试执行以下操作:

 

<% = Form_for @user, :controller => "admin/users" do | f |%>


<button type='submit'>Guardar</button>

<% end %>

#控制器 ===============

def new
    @user = User.new
  end




def create
    @user = User.new(user_params)
    respond_to do |format|
      if @user.save
          format.html { redirect_to admin_users_url, notice: "User #@user.name} was successfully created." }
          format.json { render :controller => 'admin/users', action: 'show', status: :created, location: @user }
      else
          format.html { render :controller => 'admin/users', action: 'new' }
          format.json { render json: @user.errors, status: :unprocessable_entity }
      end 
    end   
  end

但它不起作用,如果有人可以帮助我,我无法到达我的控制器(“管理员/用户”)的路线

【问题讨论】:

  • 这像嵌套资源吗?你能发布控制器代码和路由吗

标签: ruby-on-rails ruby ajax ruby-on-rails-4.1 ruby-2.1


【解决方案1】:

我假设您在 config/routes.rb 中定义了您的管理路由,如下所示:

# in config/routes.rb
namespace :admin do
  resources :users
end

见:Rails Guide about namespaces in routes

那么这应该适用于您视图中的管理员命名空间表单:

<%= form_for [:admin, @user] do |f| %>
  ...
<% end %>

见:Rails Guide about namespaces and form helper

您的控制器代码看起来不错,但请确保控制器也已命名空间:

# in app/controllers/admin/users_controller.rb
module Admin
  class UsersController
    # ...
  end
end

【讨论】:

  • 当你保存录音时,即使我没有得到驱动路径(admin / user_controller.rb)
猜你喜欢
  • 1970-01-01
  • 2015-11-24
  • 1970-01-01
  • 1970-01-01
  • 2016-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-23
相关资源
最近更新 更多