我正在尝试向下面的视图添加一个输入(复选框),在提交时,它会将它的值传递给控制器中的league_params,而不仅仅是params。现在,仅:在提交时将名称添加到league_params。
如果重要的话,在最初创建联盟之后通过迁移添加了is_disabled列(布尔值)。
视图
<%= form_for @league, :html => { :class => 'form-horizontal' } do |f| %>
<div class="control-group">
<label class='control-label' for="league_name">Name</label>
<div class="controls">
<%= f.text_field :name, :class => 'text_field' %>
</div>
</div>
<div class="control-group">
<%= f.label :is_disabled, "Is Disabled", :class => 'control-label' %>
<div class="controls">
<%= f.check_box :is_disabled %>
</div>
</div>
<div class="form-actions">
<%= f.submit nil, :class => 'btn btn-primary' %>
<%= link_to t('.cancel', :default => t("helpers.links.cancel")),
leagues_path, :class => 'btn' %>
</div>
<% end %>
在控制器中:
def update
respond_to do |format|
if @league.update(league_params)
format.html { redirect_to @league, notice: 'League was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: 'edit' }
format.json { render json: @league.errors, status: :unprocessable_entity }
end
end
end
答案 0 :(得分:1)
如果您使用的是强参数,则必须允许&#39;从视图传递的字段。在这种情况下,根据您的问题,&#39;名称&#39;允许但字段“is_disabled&#39; ISN&#39;吨
例如
params.require(:user).permit(:first_name, :last_name)
答案 1 :(得分:1)
请在您未在此处发布的控制器末尾的方法中添加类似的内容:
def league_params
params.require(:league).permit(:is_disabled, .. etc)
end
确保您在此处添加了is_disabled
。