Ruby on rails 显示POST,但不显示';救不了
我刚从RoR开始,到目前为止一直过得很愉快。目前,我正试图将事件发布到一个中心提要,也许我已经预见到我是如何设置错误的。我有两个模型,用户和事件,我会给出一个要点。用户有许多事件,而事件属于用户。我正在尝试将事件保存到所有用户都可以看到的中央提要“ala facebook”。我在事件控制器中的创建方法是:Ruby on rails 显示POST,但不显示';救不了,ruby-on-rails,Ruby On Rails,我刚从RoR开始,到目前为止一直过得很愉快。目前,我正试图将事件发布到一个中心提要,也许我已经预见到我是如何设置错误的。我有两个模型,用户和事件,我会给出一个要点。用户有许多事件,而事件属于用户。我正在尝试将事件保存到所有用户都可以看到的中央提要“ala facebook”。我在事件控制器中的创建方法是: def create @event = current_user.events.build(params[:event]) if @event.save flash[:success] =
def create
@event = current_user.events.build(params[:event])
if @event.save
flash[:success] = "Event Shared"
render :action => :show
else
render :new
end
end
render:action=>:show正在播放文章并转到/events,但未保存文章。当我返回到/events时,我得到一个错误:找不到没有ID的事件
任何帮助都将不胜感激。提前感谢,rails社区非常棒 我已经检查了你的源代码,目前看到了以下我认为不正确的地方。如果他们不负责存储事件,我不知道:
- 如果事件
属于用户,并且用户有许多事件,那么事件应该保留在用户的上下文中。请参见导轨指南中的。您对URL的定义可能是
resources :users do resources :events
- 您的附加匹配规则
是危险的,因为它会覆盖正常的索引路由。您要显示的事件id来自何处match'/events',:to=>'events#show'
events\u controller.rb
- 在
方法中,该eventscoontroller#create
来自何处当前用户
- 在路径
中,您在最后执行的操作if@event.save
。这将render:action=>:show
- 显示错误的视图(不是索引,而是事件控制器的显示页面)
- 之前不会调用该操作
,它将使用正确的操作并显示正确的视图重定向到@event
@event
未保存吗?在路径中添加puts
语句如何,如下所示:
if @event.save
flash[:success] = "Event Shared"
redirect_to @event # or use redirect_to(events_url)
else
puts "Failure in storing: #{@event}"
flash[:failure] = "Event not shared."
render :new
end
感谢您的帮助。我正在查看它,但我不正确,事件正在保存到db,但没有显示。感谢您将我指向此嵌套资源。