使用form_for将数据发送到控制器

时间:2014-01-09 17:35:50

标签: ruby-on-rails haml form-for

假设我有Factory has_many的模型Employees

在我看来,我有以下内容:

%h3
  = @factory.name

%h3 Add new employee :
= form_for :employee do |f|
  .field
    = f.label "Name :"
    = f.text_field :name
  .field
    = f.label "Age :"
    = f.text_field :age
  .actions
    = f.submit 'Save new employee'

在我的控制器中,我想要检索视图中变量id的{​​{1}}。我该如何访问它?

感谢。

2 个答案:

答案 0 :(得分:1)

首先要做的两种方法是创建嵌套路由http://guides.rubyonrails.org/routing.html#nested-resources

resources :factories do
  resources :employees
end

或为其创建一个hidden_​​field并将其值赋给它

答案 1 :(得分:1)

在呈现表单的控制器上创建与@employee

关联的@factory实例
class EmployeesController < ApplicationController
  def new
    @factory = Factory.find params[:id]
    @employee = @factory.employees.build
  end
end

在视图中使用实例@employee而不是:employee

= form_for @employee do |f|
  ...