当我点击一个链接来呈现布局作为我实现jQuery UI选项卡的一部分时,我得到ActionController::RoutingError in Profiles#show
。这里是我的link_to
:使用jQuery UI选项卡和AJAX时的RoutingError
<%= link_to "Messages", :controller => 'profiles', :action => 'profile_messages', :remote => true %>
我ProfilesController:
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_messages
ERB布局:
<div id="tabs-2">
<% for message in @user.messages %>
<div class="message-1">
</div>
<% end %>
</div><!-- end messages -->
的routes.rb:
resources :messages do
get "messages/profile" => :profile_messages
resources :responses
end
我希望发生的是:当你在profile_messages.html.erb
节目点击创建的链接被我link_to
,布局和在特定的布局加载的消息。这里发生了什么?
UPDATE:添加在Routes.rb
新行给了我一个新的路径:
message_messages_profile GET /messages/:message_id/messages/profile(.:format) {:action=>"profile_messages", :controller=>"messages"}
于是我在我的个人档案想这show.html.erb我提出:
<li><%= link_to "Messages", message_messages_profile_path, :remote => true %></li>
这给我一个RoutingError in Profiles#show
- No route matches {:action=>"profile_messages", :controller=>"messages"}
。甚至当我添加以下到我MessagesController
:
def profile_messages
@message = @user.messages.find(params[:user_id])
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @messages }
end
end
是吧'资源:messages'或'资源:messages'?我尝试了两种方法,仍然在配置文件中显示RoutingError - ''没有路由匹配{:action =>“profile_messages”,:controller =>“profiles”,:remote => true}'。去localhost3000/messages/profile给MessagesController#显示''RecordNotFound'''找不到ID = profile'的消息 – tvalent2
我已经添加了一个更新,以了解现在发生了什么。 – tvalent2
因此,只要它给你'找不到ID = profile'的消息,这意味着你没有达到正确的路线。也许如果你在资源块之前移动了'get'。记住,如果你阅读'rake routes',它看到的东西的顺序就是它所经历的。第一场比赛,它完成了。稍微更新了我的答案。希望这会让你更接近。 – Travis