Ruby on rails 在rails中的嵌套属性中键入什么?
我的问题是,在完成删除、创建和更新操作后,如何重定向到事件显示页面 我是rails的新手,所以请帮助我。我有这样的路由文件Ruby on rails 在rails中的嵌套属性中键入什么?,ruby-on-rails,redirect,routes,Ruby On Rails,Redirect,Routes,我的问题是,在完成删除、创建和更新操作后,如何重定向到事件显示页面 我是rails的新手,所以请帮助我。我有这样的路由文件 resources :occasions do resources :events end resources :events do resources :event_details end 我的事件详细控制器是: before_action :set_event before_action :set_event_detail, exc
resources :occasions do
resources :events
end
resources :events do
resources :event_details
end
我的事件详细控制器是:
before_action :set_event
before_action :set_event_detail, except: [:new, :create]
def new
@event_detail = EventDetail.new
end
def create
@event_detail = EventDetail.new(event_detail_params)
@event_detail.event = @event
@event_detail.save
redirect_to
end
def edit
end
def update
@event_detail.update(event_detail_params)
end
def destroy
@event_detail.destroy
redirect_to ??
end
private
def set_event
@event = Event.find(params[:event_id])
end
def set_event_detail
@event_detail = EventDetail.find(params[:id])
end
def event_detail_params
params.require(:event_detail).permit(:capacity, :start_time, :end_time)
end
现在,我所知道的是,路线上显示了很多事件,事件有很多事件细节。但是,在我的控制器中,我没有机会,所以在删除或更新我的事件详细信息后,我无法路由到页面
我的rake路由文件
rake routes
Prefix Verb URI Pattern Controller#Action
new_user_session GET /users/sign_in(.:format) devise/sessions#new
user_session POST /users/sign_in(.:format) devise/sessions#create
destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy
new_user_password GET /users/password/new(.:format) devise/passwords#new
edit_user_password GET /users/password/edit(.:format) devise/passwords#edit
user_password PATCH /users/password(.:format) devise/passwords#update
PUT /users/password(.:format) devise/passwords#update
POST /users/password(.:format) devise/passwords#create
cancel_user_registration GET /users/cancel(.:format) devise/registrations#cancel
new_user_registration GET /users/sign_up(.:format) devise/registrations#new
edit_user_registration GET /users/edit(.:format) devise/registrations#edit
user_registration PATCH /users(.:format) devise/registrations#update
PUT /users(.:format) devise/registrations#update
DELETE /users(.:format) devise/registrations#destroy
POST /users(.:format) devise/registrations#create
teacher_students GET /teachers/:teacher_id/students(.:format) students#index
POST /teachers/:teacher_id/students(.:format) students#create
new_teacher_student GET /teachers/:teacher_id/students/new(.:format) students#new
edit_teacher_student GET /teachers/:teacher_id/students/:id/edit(.:format) students#edit
teacher_student GET /teachers/:teacher_id/students/:id(.:format) students#show
PATCH /teachers/:teacher_id/students/:id(.:format) students#update
PUT /teachers/:teacher_id/students/:id(.:format) students#update
DELETE /teachers/:teacher_id/students/:id(.:format) students#destroy
teachers GET /teachers(.:format) teachers#index
POST /teachers(.:format) teachers#create
new_teacher GET /teachers/new(.:format) teachers#new
edit_teacher GET /teachers/:id/edit(.:format) teachers#edit
teacher GET /teachers/:id(.:format) teachers#show
PATCH /teachers/:id(.:format) teachers#update
PUT /teachers/:id(.:format) teachers#update
DELETE /teachers/:id(.:format) teachers#destroy
occasion_events GET /occasions/:occasion_id/events(.:format) events#index
POST /occasions/:occasion_id/events(.:format) events#create
new_occasion_event GET /occasions/:occasion_id/events/new(.:format) events#new
edit_occasion_event GET /occasions/:occasion_id/events/:id/edit(.:format) events#edit
occasion_event GET /occasions/:occasion_id/events/:id(.:format) events#show
PATCH /occasions/:occasion_id/events/:id(.:format) events#update
PUT /occasions/:occasion_id/events/:id(.:format) events#update
DELETE /occasions/:occasion_id/events/:id(.:format) events#destroy
occasions GET /occasions(.:format) occasions#index
POST /occasions(.:format) occasions#create
new_occasion GET /occasions/new(.:format) occasions#new
edit_occasion GET /occasions/:id/edit(.:format) occasions#edit
occasion GET /occasions/:id(.:format) occasions#show
PATCH /occasions/:id(.:format) occasions#update
PUT /occasions/:id(.:format) occasions#update
DELETE /occasions/:id(.:format) occasions#destroy
event_event_details GET /events/:event_id/event_details(.:format) event_details#index
POST /events/:event_id/event_details(.:format) event_details#create
new_event_event_detail GET /events/:event_id/event_details/new(.:format) event_details#new
edit_event_event_detail GET /events/:event_id/event_details/:id/edit(.:format) event_details#edit
event_event_detail GET /events/:event_id/event_details/:id(.:format) event_details#show
PATCH /events/:event_id/event_details/:id(.:format) event_details#update
PUT /events/:event_id/event_details/:id(.:format) event_details#update
DELETE /events/:event_id/event_details/:id(.:format) event_details#destroy
events GET /events(.:format) events#index
POST /events(.:format) events#create
new_event GET /events/new(.:format) events#new
edit_event GET /events/:id/edit(.:format) events#edit
event GET /events/:id(.:format) events#show
PATCH /events/:id(.:format) events#update
PUT /events/:id(.:format) events#update
DELETE /events/:id(.:format) events#destroy
root GET / homeroutes#routes
rails_service_blob GET /rails/active_storage/blobs/:signed_id/*filename(.:format) active_storage/blobs#show
rails_blob_representation GET /rails/active_storage/representations/:signed_blob_id/:variation_key/*filename(.:format) active_storage/representations#show
rails_disk_service GET /rails/active_storage/disk/:encoded_key/*filename(.:format) active_storage/disk#show
update_rails_disk_service PUT /rails/active_storage/disk/:encoded_token(.:format) active_storage/disk#update
rails_direct_uploads POST /rails/active_storage/direct_uploads(.:format) active_storage/direct_uploads#create
我的事件控制器
# before_action :authenticate_user!
before_action :set_occasion, expect: [:index, :show]
before_action :set_event, except: [:new, :create]
# after_action :verify_authorized
def new
@event = Event.new
# authorize @event
end
def create
@event = Event.new(event_params)
@event.occasion = @occasion
# authorize @event
@event.save
redirect_to occasion_path(@occasion)
end
def edit
# authorize @event
end
def show
# authorize @event
end
def update
# authorize @event
@event.update(event_params)
redirect_to occasion_path(@occasion)
end
def destroy
# authorize @event
@event.destroy
redirect_to occasion_path(@occasion)
end
private
def set_event
@event = Event.find(params[:id])
end
def set_occasion
@occasion = Occasion.find(params[:occasion_id])
end
def event_params
params.require(:event).permit(:name, :location, :description, :isMakeAhead)
end
end
事件#显示页面中的我的查看文件:
<h1>Event Info</h1>
<table>
<thead>
<tr>
<td>Name</td>
<td>Location</td>
<td>Description</td>
<td>Make ahead</td>
<td>Capacity</td>
</tr>
</thead>
<tbody>
<tr>
<td><%= @event.name %></td>
<td><%= @event.location %></td>
<td><%= @event.description %></td>
<td><%= @event.isMakeAhead %></td>
</tr>
</tbody>
</table>
<%= render @event.event_details %>
<p><%= link_to "Create Time slots", new_event_event_detail_path(@event,@event_detail) %></p>
事件信息
名称
地方
描述
领先
容量
我可以创建事件详细信息,但我必须刷新页面并手动转到以查看新创建的内容。在创建事件详细信息后,是否有任何方法可以重定向回此“”页面。任何帮助都将不胜感激
我得到的错误是:
删除:索引和:显示,路由定义中除外,然后在创建/更新后,尝试:
redirect_to event_event_detail_path(@event_detail)
销毁后,将不会有@event\u详细信息可重定向到,因此您可能希望:
redirect_to event_details_path
也
。。。将向您展示您的申请路线,并为这些黑暗时刻带来光明
redirect\u to
采用路径参数,例如events\u path
重新记录到events索引操作,或'event\u event\u detail\u path(@event\u detail)重新定向到@event\u detail show操作。您可以使用redirect_通知客户端(浏览器)转到路由中列出的应用程序的任何部分,甚至是相对或绝对URL。稍后,您将了解到您还可以添加各种参数和HTTP状态代码。首先,您需要更改路由
resources :occasions do
resources :events do
resources :event_details
end
end
然后,您可以发布您的rake路由,并根据事件索引或事件索引的路由进行路由。您可以这样做
redirect_to event_path(@event)
我输入代码后出现的错误是#的未定义方法'event_detail_path'。您的意思是?event_detail_params def create@event_detail=EventDetail.new(event_detail_params)@event_detail.event=@event@event_detail.save重定向_到event_detail_路径(@event_detail)endRight,它的名称空间。。。从路由定义中删除:show,然后再次运行rake路由,它将向您显示路径。rails路由指南也将帮助您了解许多事情,并为您提供一个新的角度来规划应用程序结构。谢谢傅,非常感谢,先生,在发布之前必须开始考虑我的评论!在遵循了你提到的所有建议之后,我仍然会遇到同样的错误。谢谢。但是rails文档说不要深入嵌套多个资源。这是一个好的选择吗?Akhil是对的,它可以工作!继续这样做,然后再次运行
rake routes
,看看它是什么样子。Pandey ji,如果要去参加活动,我需要一个场合id。因此,正如我提到的,我的资源不包括场合。所以重定向到事件路径首先搜索事件id,然后搜索我当前路由中没有的事件id。Jay Nepal.event GET/events/:id(:format)
我怀疑您是否需要场合id?你想去哪里?在偶发事件中?我所拥有的是偶发事件有很多。事件有很多场合。所以,在《盛会》的节目页面上,有一些活动的列表。现在,在每个事件的显示页面下都有许多事件详细信息(时间段等)。现在,在我创建了一个event_details之后,我想转到event_show页面,它嵌套在一个场合中。因此,将事件重定向到事件路径(@event)将尝试查找时机,这在事件详细信息控制器中不可用。Hajur le malai导师garney ho bhane ma paisa Tirra padhna tayar chu.当然,我可以根据您所指的指导您的路线应该是资源:场合做资源:事件做资源:事件细节结束
我需要查看视图,但我需要参考所有代码来解决这个问题,您能给出代码吗这是我的电子邮件ynique。adhar@gmail.com
redirect_to event_path(@event)