我正在尝试使用以下属性创建学校模型,用户可以创建: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值?
由于
答案 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