獲取控制器缺少PARAMS信息,這裏是控制器的ActionController :: ParameterMissing在Rails應用程序
class SubjectsController < ApplicationController
layout false
def new
@subject=Subject.new
end
def create
@subject = Subject.create(subject_params)
if @subject.save
redirect_to(:action => 'index')
else
render('new')
end
end
private
def subject_params
params.require(:subject).permit(:name, :position, :visible)
end
end
這裏的代碼是爲new.html.erb
<%= link_to("<< Back to List", {:action => 'index'}, :class => 'back-link') %>
<div class="subjects new">
<h2>Create Subject</h2>
<%= form_for(:subject, :url => {:action => 'create'}) do |f| %>
<table summary="Subject form fields">
<tr>
<th>Name</th>
<td><%= f.text_field(:name) %></td>
</tr>
<tr>
<th>Position</th>
<td><%= f.text_field(:position) %></td>
</tr>
<tr>
<th>Visible</th>
<td><%= f.text_field(:visible) %></td>
</tr>
</table>
<div class="form-buttons">
<%= submit_tag("Create Subject") %>
</div>
<% end %>
</div>
代碼
希望有人可以告訴我爲什麼得到這個錯誤:
ActionController::ParameterMissing in SubjectsController#create
param is missing or the value is empty: subject
Extracted source (around line #34):
def subject_params
params.require(:subject).permit(:name, :position, :visible)
end
end
感謝
在創建它應該是'@subject = Subject.new(subject_params)'之前'@ subject.save' –