我不知道我是否正确执行此操作。我有一个操作,我想要复制,创建,并保存一个新的对象,如果用户登录,或者重定向,如果他们没有登录。我不在这里使用一个表单,因为我正在使用一个风格化的按钮,图像,看起来像这样:更新或重定向的Rails路由
<a href="/lists/add/<%= @list.id %>" class="button">
<span class="add_list">Learn these words</span>
</a>
和行动看起来是这样的:
def add
if is_logged_in?
list = logged_in_user.copy_list(params[:id])
if list.save
flash[:notice] = "This list is now in your stash."
redirect_to stash_zoom_nav_quiz_path(list, "zoomout", "new", "quizoff")
else
flash[:notice] = "There was a problem adding this list."
redirect_to :back
end
else
redirect_to :controller => "users", :action => "signup_and_login", :list_id => params[:id]
end
end
map.resources :lists, :collection => {:share => :get, :share_callback => :get, :add => :put}
我已经加入这种动作为:把我的路线,我不知道这是否是正确的或如果其他东西是正确的方式,甚至可以做到这一点。任何帮助表示赞赏。
只是出于好奇,会错误标记成员作为集合的负面影响是什么? – TenJack 2010-03-09 05:44:14
也谢谢你的帮助,我不知道你可以用link_to创建一个块! – TenJack 2010-03-09 05:56:09
有一件事,我想我应该在这里使用POST方法b/c我创建一个新记录,但是,如果我使用POST或PUT,我会得到一个“ActionController :: UnknownAction”路由错误。看来GET是单词的唯一方法,这可以吗? – TenJack 2010-03-09 06:19:35