Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/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 3 未找到Rails 3操作控制器记录_Ruby On Rails 3_Controller - Fatal编程技术网

Ruby on rails 3 未找到Rails 3操作控制器记录

Ruby on rails 3 未找到Rails 3操作控制器记录,ruby-on-rails-3,controller,Ruby On Rails 3,Controller,我正在将jQuery UI选项卡与Ajax一起使用,但出现了一个错误: Failed to load resource: the server responded with a status of 404 (Not Found) 资源是 如果我在浏览器中转到,我将获得动作控制器:捕获异常: ActiveRecord::RecordNotFound in MessagesController#show Couldn't find Message with ID=profile_messages

我正在将jQuery UI选项卡与Ajax一起使用,但出现了一个错误:

Failed to load resource: the server responded with a status of 404 (Not Found)
资源是

如果我在浏览器中转到,我将获得动作控制器:捕获异常:

ActiveRecord::RecordNotFound in MessagesController#show

Couldn't find Message with ID=profile_messages

Rails.root: /Users/me/Desktop/myapp

app/controllers/messages_controller.rb:18:in `show'

Parameters:

{"id"=>"profile_messages"}
在我的
消息控制器中显示

def show
  @message = Message.find(params[:id])
  respond_to do |format|
    format.html # show.html.erb
    format.xml  { render :xml => @message }
    format.js {render :layout => false }
  end
end
resources :users
resources :profiles
resources :session
resources :sessions
resources :messages do
  resources :responses
end
resource :messages do
  collection do
    get :profile_messages
  end
end
messages GET    /messages(.:format)  {:action=>"index", :controller=>"messages"}
          POST   /messages(.:format)  {:action=>"create", :controller=>"messages"}
new_message GET    /messages/new(.:format)  {:action=>"new", :controller=>"messages"}
edit_message GET    /messages/:id/edit(.:format)  {:action=>"edit",     :controller=>"messages"}
message GET    /messages/:id(.:format)  {:action=>"show", :controller=>"messages"}
         PUT    /messages/:id(.:format)  {:action=>"update", :controller=>"messages"}
         DELETE /messages/:id(.:format)  {:action=>"destroy", :controller=>"messages"}
profile_messages_messages GET    /messages/profile_messages(.:format)               {:action=>"profile_messages", :controller=>"messages"}
         POST   /messages(.:format)  {:action=>"create", :controller=>"messages"}
new_messages GET    /messages/new(.:format)  {:action=>"new", :controller=>"messages"}
edit_messages GET    /messages/edit(.:format)  {:action=>"edit", :controller=>"messages"}
         GET    /messages(.:format)  {:action=>"show", :controller=>"messages"}
         PUT    /messages(.:format)  {:action=>"update", :controller=>"messages"}
         DELETE /messages(.:format)  {:action=>"destroy", :controller=>"messages"}
def profile_messages
  @messages = User.find(@profile.user_id).messages
  respond_to do |format|
    format.html # index.html.erb
    format.xml  { render :xml => @messages }
  end
end
messagescoontroller#show是针对单个消息的,但是我如何才能使它适用于我要做的事情呢?我是Rails和编程新手,如果这是一个显而易见的答案,我感到非常抱歉

Routes.rb:

def show
  @message = Message.find(params[:id])
  respond_to do |format|
    format.html # show.html.erb
    format.xml  { render :xml => @message }
    format.js {render :layout => false }
  end
end
resources :users
resources :profiles
resources :session
resources :sessions
resources :messages do
  resources :responses
end
resource :messages do
  collection do
    get :profile_messages
  end
end
messages GET    /messages(.:format)  {:action=>"index", :controller=>"messages"}
          POST   /messages(.:format)  {:action=>"create", :controller=>"messages"}
new_message GET    /messages/new(.:format)  {:action=>"new", :controller=>"messages"}
edit_message GET    /messages/:id/edit(.:format)  {:action=>"edit",     :controller=>"messages"}
message GET    /messages/:id(.:format)  {:action=>"show", :controller=>"messages"}
         PUT    /messages/:id(.:format)  {:action=>"update", :controller=>"messages"}
         DELETE /messages/:id(.:format)  {:action=>"destroy", :controller=>"messages"}
profile_messages_messages GET    /messages/profile_messages(.:format)               {:action=>"profile_messages", :controller=>"messages"}
         POST   /messages(.:format)  {:action=>"create", :controller=>"messages"}
new_messages GET    /messages/new(.:format)  {:action=>"new", :controller=>"messages"}
edit_messages GET    /messages/edit(.:format)  {:action=>"edit", :controller=>"messages"}
         GET    /messages(.:format)  {:action=>"show", :controller=>"messages"}
         PUT    /messages(.:format)  {:action=>"update", :controller=>"messages"}
         DELETE /messages(.:format)  {:action=>"destroy", :controller=>"messages"}
def profile_messages
  @messages = User.find(@profile.user_id).messages
  respond_to do |format|
    format.html # index.html.erb
    format.xml  { render :xml => @messages }
  end
end
rake路由:

def show
  @message = Message.find(params[:id])
  respond_to do |format|
    format.html # show.html.erb
    format.xml  { render :xml => @message }
    format.js {render :layout => false }
  end
end
resources :users
resources :profiles
resources :session
resources :sessions
resources :messages do
  resources :responses
end
resource :messages do
  collection do
    get :profile_messages
  end
end
messages GET    /messages(.:format)  {:action=>"index", :controller=>"messages"}
          POST   /messages(.:format)  {:action=>"create", :controller=>"messages"}
new_message GET    /messages/new(.:format)  {:action=>"new", :controller=>"messages"}
edit_message GET    /messages/:id/edit(.:format)  {:action=>"edit",     :controller=>"messages"}
message GET    /messages/:id(.:format)  {:action=>"show", :controller=>"messages"}
         PUT    /messages/:id(.:format)  {:action=>"update", :controller=>"messages"}
         DELETE /messages/:id(.:format)  {:action=>"destroy", :controller=>"messages"}
profile_messages_messages GET    /messages/profile_messages(.:format)               {:action=>"profile_messages", :controller=>"messages"}
         POST   /messages(.:format)  {:action=>"create", :controller=>"messages"}
new_messages GET    /messages/new(.:format)  {:action=>"new", :controller=>"messages"}
edit_messages GET    /messages/edit(.:format)  {:action=>"edit", :controller=>"messages"}
         GET    /messages(.:format)  {:action=>"show", :controller=>"messages"}
         PUT    /messages(.:format)  {:action=>"update", :controller=>"messages"}
         DELETE /messages(.:format)  {:action=>"destroy", :controller=>"messages"}
def profile_messages
  @messages = User.find(@profile.user_id).messages
  respond_to do |format|
    format.html # index.html.erb
    format.xml  { render :xml => @messages }
  end
end
profile\u messages控件中的messages方法:

def show
  @message = Message.find(params[:id])
  respond_to do |format|
    format.html # show.html.erb
    format.xml  { render :xml => @message }
    format.js {render :layout => false }
  end
end
resources :users
resources :profiles
resources :session
resources :sessions
resources :messages do
  resources :responses
end
resource :messages do
  collection do
    get :profile_messages
  end
end
messages GET    /messages(.:format)  {:action=>"index", :controller=>"messages"}
          POST   /messages(.:format)  {:action=>"create", :controller=>"messages"}
new_message GET    /messages/new(.:format)  {:action=>"new", :controller=>"messages"}
edit_message GET    /messages/:id/edit(.:format)  {:action=>"edit",     :controller=>"messages"}
message GET    /messages/:id(.:format)  {:action=>"show", :controller=>"messages"}
         PUT    /messages/:id(.:format)  {:action=>"update", :controller=>"messages"}
         DELETE /messages/:id(.:format)  {:action=>"destroy", :controller=>"messages"}
profile_messages_messages GET    /messages/profile_messages(.:format)               {:action=>"profile_messages", :controller=>"messages"}
         POST   /messages(.:format)  {:action=>"create", :controller=>"messages"}
new_messages GET    /messages/new(.:format)  {:action=>"new", :controller=>"messages"}
edit_messages GET    /messages/edit(.:format)  {:action=>"edit", :controller=>"messages"}
         GET    /messages(.:format)  {:action=>"show", :controller=>"messages"}
         PUT    /messages(.:format)  {:action=>"update", :controller=>"messages"}
         DELETE /messages(.:format)  {:action=>"destroy", :controller=>"messages"}
def profile_messages
  @messages = User.find(@profile.user_id).messages
  respond_to do |format|
    format.html # index.html.erb
    format.xml  { render :xml => @messages }
  end
end
您正在尝试访问id=>profile\u消息的消息

您可能需要做的是:

例如:

在routes.rb中,您可能需要添加以下内容:

resources:messages
成员do
获取:配置文件\u消息
结束
结束
=======更新========

基于此,

profile_messages_messages GET    /messages/profile_messages(.:format)               {:action=>"profile_messages", :controller=>"messages"}
您能否向我们显示控制器消息中的方法配置文件消息

=======更新========

你应该改变你的路线

资源:用户
资源:概况
资源:会议
资源:会议
资源:消息可以吗
资源:答复
结束
资源:消息可以吗
收藏办
获取:配置文件\u消息
结束
结束

资源:用户
资源:概况
资源:会议
资源:会议
资源:消息可以吗
资源:答复
获取:profile_消息,:on=>:集合
结束
你也可以加上

match”/messages/profile_messages=>“messages#profile_messages”

您能告诉我们您的routes.rb吗?为什么您只有一个问题\u控制器而没有消息\u控制器?你能添加实际的文件而不是rake路由的输出吗?你比我快。我添加了文件和rake路由的
消息
端。在您的消息中,控制器是
@profile
是为行
@messages=User.find(@profile.User\u id)定义的。消息
否@profile在MessagesController中的任何位置都没有定义。我应该在
show
方法或
profile\u messages
方法中定义它吗?首先尝试更改路由,但您需要定义它,因为它是在profile\u messages方法中调用的,因此没有路由匹配,我无法找到ID=profile\u问题的问题。通过匹配(并将“messages#profile_messages”更改为“messages#profile_messages”),我在
messages\u controller.rb
中为nil:NilClass`获得
未定义的方法
user_id'。所以我需要在
profile\u messages
中的
messages\u controller.rb
中定义它。太好了,现在你需要在profile\u messages中定义你的
@profile
,这样它就可以访问用户id了。