我对此很困惑;我在这里有自定义路线。
我有一个群组/:id / new_caretaker。这有一个表格。每当该表单被POST时,它应该转到同一页面;但是采用不同的方法。
但是,如果我发布表单Missing template groups/create_caretaker, application/create_caretaker
我该如何解决这个问题?
这是我的表格:
<%= form_tag(controller: "groups", action: "create_caretaker", method: "post") do %>
<div class="field">
<%= text_field_tag('email') %>
</div>
<%= submit_tag "Opslaan"%>
<% end %>
我的路线:
get "/groups/:id/new_caretaker" => "groups#new_caretaker", :as => :new_caretaker
post "/groups/:id/new_caretaker" => "groups#create_caretaker"
添加了groups.controller方法:
注意:new_caretaker从:before_action
def new_caretaker
end
def create_caretaker
email = params[:email]
if !email.blank?
userToAdd = User.find_by_email(email)
if userToAdd.blank?
#User doesn't exist
else
#User does exist
respond_to do |format|
if @group.users.find_by_id(userToAdd)
@theAlert = 'Deze gebruiker zit al in de groep en is niet toegevoegd'
format.html { render action: 'new_caretaker' }
format.json { render json: @theAlert, status: :unprocessable_entity }
else
@group.users << userToAdd
format.html { redirect_to @group, notice: 'De begeleider is toegevoegd.' }
end
end
end
end
end
答案 0 :(得分:0)
if !email.blank?
=&gt; false和if userToAdd.blank?
=&gt; true分支不呈现或重定向。因此,如果要查找具有该操作名称的模板,请使用rails。
答案 1 :(得分:0)
我建议您改进路由编辑routes.rb
:
resources :groups do
member do
get 'new_caretaker'
post 'create_caretaker'
end
end
然后你调用这个重定向:
redirect_to group_new_caretaker_path(@group)
在需要时在控制器中。
这样,您还可以在params[:group_id]
控制器方法中获得new_caretaker
参数,以便能够处理与组相关的数据(如果需要)。
答案 2 :(得分:0)
修复:我没有在if
中呈现任何内容,只是在else
中。但是答案中有一些很好的提示。