2015-10-11 65 views
0

我试图用Rails 4做一个应用程序。Rails - 链接到父协会

我有一个project.rb和一个project_student_eoi.rb。

的关联是:

project has many project student eons 
project student eois belong to project 

我的项目展示页面,我有一个链接到一个表格,学生可以表达参加一个项目的兴趣。

<% if can? :read, Project && current_user.profile.has_role?(:student) %> 
      <%= link_to 'Join this project', new_project_student_eoi_path %> 
     <% end %> 

然后在新的页面(嵌套表单),我有一个后面的链接,应该回到项目本身。脚手架结构可以追溯到所有项目学生eois的索引。我正在尝试改变这一点,以便路径返回到项目中。

我试过所有这些变化,我没有得到任何地方。我一般都在与协会斗争。我的项目学生eoi表有一个名为project_id的属性。我想用它来匹配正在用来发送链接到新的兴趣表达式的项目。

<h1 class="header-project" style="margin-bottom:10%"> 
    Express your interest in this project 
    </h1> 


    <%= render 'form' %> 


<div class="formminor"> 
    <%= link_to 'Back', project_path(:project_id => project.id) %> 

我也曾尝试:

<%= link_to 'Back', project_path(:project_id => :project.id) %> 
<%= link_to 'Back', project_path(project_id: @project.id) %> 
<%= link_to 'Back', project_path(project_id: => project.id) %> 

和一些其他的变化 - 你是怎么做到这一点?

+0

可以共享航线,好吗? – akbarbin

回答

0

你需要通过 “PROJECT_ID” 参数 “加入此项目”

应用程序/视图/项目/ show.html.erb

<% if can? :read, Project && current_user.profile.has_role?(:student) %> 
    <%= link_to 'Join this project', new_project_student_eoi_path(project_id: @project.id) %> 
<% end %> 

并确保PROJECT_ID属性设置在 “新” 行动

应用程序/控制器/项目/ project_student_eois_controller.rb

class ProjectStudentEoisController < ApplicationController 
    def new 
    @project_student_eoi = ProjecStudentEoi.new(project_id: params[:project_id]) 
    end 
end 

一旦PROJECT_ID设置,您可以使用此:

<%= link_to 'Back', project_path(@project_student_eoi.project) %>