将ID从一个控制器传递到另一个控制器

时间:2016-08-07 12:26:41

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4

所以我正在开发一个工作门户网站,我希望将当前的工作ID传递给“工作应用程序”控制器#new方法,但我遇到了问题。

因此,当用户点击“Job_applications #new”时,它会获取当前页面的job_id。

模型

Class Job 
  has_many :job_applications
end

Class JobApplication
  belongs_to :job
end

在我的Job_Applications Controller

def create
    @job = Job.find(params[:id])
    *Additional save & Redirect methods*
end

在我的视图中,我有以下代码

<%= link_to "Apply Now",new_job_application_path(:id => @job.id), class: "btn btn-primary" %>

我知道我在这里做了一些愚蠢的事情,理想情况下,我想传递工作ID,而不是在URL中

实施例

domain.com/job_application/new

但是这个方法显示了这个

domain.com/job_application/new?id=3

任何帮助非常感谢

2 个答案:

答案 0 :(得分:0)

致电时

new_job_application_path(id: @job.id)

你应该能够像你一样检索它:

@job = Job.find(params[:id])

答案 1 :(得分:0)

如果你希望你的参数没有出现在网址中,你必须使用POST请求。

但请注意,使用“新”字样的帖子请求行动不是“休息”,这是Rails的基础,但并非不可能。

详细了解&#39; Restful routes&#39; here