Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 显示POST,但不显示';救不了_Ruby On Rails - Fatal编程技术网

Ruby on rails 显示POST,但不显示';救不了

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] =

我刚从RoR开始,到目前为止一直过得很愉快。目前,我正试图将事件发布到一个中心提要,也许我已经预见到我是如何设置错误的。我有两个模型,用户和事件,我会给出一个要点。用户有许多事件,而事件属于用户。我正在尝试将事件保存到所有用户都可以看到的中央提要“ala facebook”。我在事件控制器中的创建方法是:

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社区非常棒

我已经检查了你的源代码,目前看到了以下我认为不正确的地方。如果他们不负责存储事件,我不知道:

  • 您的routes.rb文件有一些我不理解的地方:

    • 如果事件
      属于用户,并且用户有许多事件,那么事件应该保留在用户的上下文中。请参见导轨指南中的。您对URL的定义可能是

      resources :users do
        resources :events
      
    • 您的附加匹配规则
      match'/events',:to=>'events#show'
      是危险的,因为它会覆盖正常的索引路由。您要显示的事件id来自何处

  • 文件
    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,但没有显示。感谢您将我指向此嵌套资源。