Ruby on rails Rails表单_(新)重定向到提交后显示
我正在使用管理会话创建一个新的客户端。当我提交表单时,我需要它重定向到该客户端显示页面,但@client id此时等于nil。我使用Desive进行身份验证,所以当管理员创建客户端时,它会直接进入客户端主页。我需要转到“管理员”客户端索引。谢谢你的帮助Ruby on rails Rails表单_(新)重定向到提交后显示,ruby-on-rails,forms,devise,Ruby On Rails,Forms,Devise,我正在使用管理会话创建一个新的客户端。当我提交表单时,我需要它重定向到该客户端显示页面,但@client id此时等于nil。我使用Desive进行身份验证,所以当管理员创建客户端时,它会直接进入客户端主页。我需要转到“管理员”客户端索引。谢谢你的帮助 <%= form_for @client, :url => client_path(@client) do |f| %> <p> <%= f.label :name, "Empresa" %> &l
<%= form_for @client, :url => client_path(@client) do |f| %>
<p> <%= f.label :name, "Empresa" %> <%= f.text_field :name %></p>
<p> <%= f.label :email %> <%= f.text_field :email %> </p>
<p> <%= f.label :password %> <%= f.text_field :password %> </p>
<p> <%= f.label :contact %> <%= f.text_field :contact %></p>
<%= f.submit "Create", :class => "btn btn-primary" %>
client_路径(@client)do | f |%>
“btn btn主要”%>
是否在clients\u controller.rb方法new上创建新的客户端实例?
同样在你的表格上,我相信
就足够了
例如:
“管理员”客户端索引
如果是,则需要在所有对象和路径引用中处理名称空间:
<%= form_for [:admin, @client] do |f| %> #-> sends to admin/clients#create
另外,您需要确保没有将HTML用作样式设置机制 我看到人们一直在使用
和
进行造型;这是错误的。您有一个完整的CSS管道来设置表单的样式:
#app/assets/stylesheets/application.css
form input {
margin: 10px 0;
}
您可以在这里看到这一点:谢谢泰雷兹,但它不会发送到客户机控制器,因为我正在使用Desive进行身份验证。因此,当管理员创建客户端时,它直接进入客户端主页。我想转到“管理员”客户端索引。我希望我很清楚谢谢Rich,我刚开始工作。还感谢CSS推荐(我只是在测试,所以我添加了这些标签以获得清晰的视图),不过我会记住它。
#config/routes.rb
namespace :admin do
resources :clients, only: [:new, :create, :index]
end
#app/controllers/admin/clients_controller.rb
class Admin::ClientsController < ApplicationController
before_action :authenticate_user!
def index
@clients = Client.all
end
def new
@client = Client.new
end
def create
@client = Client.new client_params
@client.save
end
end
#app/assets/stylesheets/application.css
form input {
margin: 10px 0;
}