我在視圖中使用簡單的ajax切換部分,以允許用戶將消息切換爲已讀或未讀。當我切換時,我得到一個失敗。AJAX窗體不通過params [:id]
MessagesController#show無法找到沒有ID的MessageCopy。
應用跟蹤:messages_controller.rb:在「顯示」(行動的第一線)
show.html.erb
<%= render :partial => "read_unread_buttons" %>
# read_unread_buttons partial
<div id="read_buttons" class="ajaxButtonText">
<% if @message.read == true %>
<%= link_to "Mark Unread",
{:url => {:action => "read_unread_toggle", :id => @message.id},
:update => {:success => "read_buttons", :failure => "Error"}},
{:class=>"messageButton", :id => "markUnread"}, :remote => true %>
<% else %>
<%= link_to "Mark as Read",
{:url => {:action => "read_unread_toggle", :id => @message.id},
:update => {:success => "read_buttons", :failure => "Error"}},
{:class=>"messageButton", :id=>"markUnread"}, :remote => true %>
<% end %>
</div>
# messages controller
def show
@message = current_user.received_messages.find(params[:id])
@message.read = true
@message.save(:validate => false)
render :layout => "messages"
end
def read_unread_toggle
@message = current_user.received_messages.find(params[:id])
@message.read = [email protected]
@message.save(:validate => false)
render :partial => "read_unread_buttons", :locals => {:message => @message, :id => params[:id] }, :layout => false
end
您的ajax鏈接不應該發送請求到「read_unread_toggle」動作,而不是show動作?你能爲消息控制器顯示你的路由嗎? – Jeremy 2010-10-14 21:17:07
嗨傑里米:匹配'messages/read_unread_toggle'和 匹配'messages/show'。 – sscirrus 2010-10-14 21:48:50