我有个人资料,此个人资料有很多curso
个(课程)。我会在此个人资料的show.html.erb
上显示个人资料的所有课程。
<% for curso in @profile.cursos %>
<li><%=h curso.nome %> - <%=h curso.universidade %><br>
Ingresso em: <%=h curso.ano_ingresso %> - Encerra em: <%=h curso.ano_termino %>
<li>
<%= button_to 'Delete', { :action => "destroy", :id => curso.id },:confirm => "Are you sure?", :method => :delete %>
这样,我就可以在页面上显示个人资料所有的课程,但button_to delete
只是不起作用。我已经尝试了很多东西,但我想我已经迷失了。关于如何创建链接或按钮或删除课程的任何想法?
答案 0 :(得分:4)
在您的路线文件
中resources :profiles do
resources :courses
end
然后你可以使用link_to方法
<%= link_to "Delete", profile_course_path(profile, course), :method => :delete %>
确保提供正确的变量profile
和course
然后在您的courses_controller.rb中,您需要获取个人资料。
before_filter :get_profile
def get_profile
@profile = Profile.find(params[:profile_id]) if params[:profile_id]
end
def destroy
@course = Corse.find(params[:id])
@course.destroy
redirect_to profile_courses_path(@profile)
end
这将带您回到正确的配置文件网址及其嵌套课程。
对于新课程,您可以使用以下链接:
<%= link_to "New Course", new_profile_course_path(profile) %>
这将带您进入课程控制器中的new
操作。
您应该阅读嵌套表单here。