Ruby on Rails应用程序中的form_for

时间:2012-06-10 00:59:02

标签: ruby-on-rails ruby

我正在尝试使用以下属性创建学校模型,用户可以创建:school_name(string),:description(string)和:created_by_user(integer)。

用户应该只能访问和更改名称和描述参数,created_by_user字段应自动设置为创建它的用户的id#。

这是我新学校的表格:

<h1>Open a New School</h1>

<%= form_for(@school) do |f| %>
 <%= render 'shared/error_messages', :object => f.object %>
<%= render 'fields', :f => f %>
<div class="actions">
<%= f.submit "Create School!" %>
</div>  
   

这是“字段”部分

<div class="field">
  <%= f.label :school_name %><br />
  <%= f.text_field :school_name %>
</div>
<div class="field">
 <%= f.label :description %><br />
 <%= f.text_area :description, :size => "45x10" %>
 </div>

我可以在“字段”部分或其他任何地方添加什么内容,以便在用户创建新学校时,他们的ID会自动设置为created_by_user值?

由于

1 个答案:

答案 0 :(得分:1)

您需要在控制器中定义它,而不是在视图中定义。类似的东西:

class SchoolsController < ApplicationController

  def create
    @school = School.new(params[:school])
    @school.created_by_user = current_user
    if @school.save
      redirect_to @school, notice: "School Created"
    else
      render :new
    end
  end
end