我正在尝试在我的rails应用程序的前端有一个按钮,显示一个链接列表。我希望他们能够点击“添加到收藏夹”
现在我正在努力让它在没有AJAX的情况下工作,但最终我会在我得到后备工作时添加它(只是常规链接,对吧?..然后在js我使用返回false;然后使用ajax)
现在,我没有看到任何错误,但是当我点击它时它没有添加收藏。任何帮助将不胜感激
路线:
root :to => 'home#index'
resources :resources, :except => [:index]
resources :profiles, :only => [:show]
resources :favorites, :only => [:create, :destroy]
match '/learn', :to => 'pages#learn'
match '/contact', :to => 'pages#contact'
match '/requests', :to => 'pages#requests'
收藏控制器
class FavoritesController < ApplicationController
before_filter :authenticate_user!
def create
@favorite = Favorite.new(:resource_id => params[:id], :user_id => current_user.id)
if @favorite.valid?
@favorite.save
else
redirect_to root_url
end
end
def destroy
# also must find by user as well...
@favorite = Favorite.find_by_resource_id(params[:id])
@favorite.destroy
redirect_to root_url
end
end
继承我的观看代码,实际上显示了“添加收藏”链接:
<%= link_to favorites_path(resource), :method => :post, :class => "btn btn-warning btn-mini" do %>
<i class="icon-star icon-white" rel="tooltip" title="add to favorites"></i> Add to favorites
<% end %>
当我将鼠标悬停在它上面时,网址显示为site.com/favorites.3 ---不确定这是否正确?
答案 0 :(得分:1)
我认为您可以使用表单来POST数据而不是使用GET的链接,或者添加此路由也可以这样做
match "/favorites/add/:id" => "favorites#create"
答案 1 :(得分:1)
默认情况下,创建操作会在rails中发布,因此不会更改默认行为,为您的目的添加新操作。
内部路线
resources :favorites, :only => [:destroy] do
get :add, :on => :collection
end
查看* 强>
<%= link_to add_favorites_path(:id => resource), :class => "btn btn-warning btn-mini" do %>
<i class="icon-star icon-white" rel="tooltip" title="add to favorites"></i> Add to favorites
<% end %>
控制器create
操作会renamed
到add