我正在尝试为住宿模型创建/更新的表单,无论其中哪一个我都遇到400错误的请求。查看我的development.log,我可以看到
ActionController :: ParameterMissing(缺少参数或值为空:可容纳):
app / controllers / accommodations_controller.rb:75:inaccommodation_params' app/controllers/accommodations_controller.rb:12:in
create'
如您在上方看到的,我的住宿参数在控制器中的第75行保持为空。我已经在下面的控制器中指出了这些行。我在这里找不到问题所在,因为我为区域模型使用了完全相同的代码,并且效果很好。这些模型也几乎相同。
我的更新表格:
<div class="modal-body">
<%=form_for @accommodation, url: accommodations_update_path, remote: true, html: {class: "form-horizontal",:multipart => true} do |f|%>
<fieldset class="content-group">
<legend class="text-bold">Images</legend>
<div class="form-group">
<label class="col-lg-2 text-semibold">Current images: <span style="color:grey">Click to delete</span> </label>
<div class="col-lg-10">
<% @accommodation.accommodation_attachments.each do |a| %>
<%unless a.image.blank?%>
<%= link_to delete_accommodation_attachment_path(a), :remote => true, :method => :delete,data: { confirm: "Are you sure you want to delete this image?"} do%>
<%= image_tag a.image_url(:thumb), class:"delete-image" %>
<% end %>
<% end %>
<% end %>
</div>
</div>
<div class="form-group">
<label class="col-lg-2 text-semibold">Add images:</label>
<div class="col-lg-10">
<%= f.fields_for :accommodation_attachments, @accommodation.accommodation_attachments.build do |aa| %>
<div class="field">
<br>
<%= aa.file_field :image, :multiple => true, name: "accommodation_attachments[image][]" %>
</div>
<% end %>
</div>
</div>
</fieldset>
<div class="form-group">
<div class="col-md-2 col-md-offset-8">
<input type="submit" class="btn btn-success" value="Submit" >
</div>
</div>
<% end %>
我的住宿
class AccommodationsController < ApplicationController
before_action :set_accommodations
before_action :set_accommodation, only: [:edit, :delete, :update, :destroy]
def new
@accommodation = Accommodation.new
@accommodation_attachment = @accommodation.accommodation_attachments.build
end
def create
#LINE 12 IS THE NEXT ONE
@accommodation = Accommodation.new(accommodation_params)
if @accommodation.save
params[:accommodation_attachments]['image'].each do |a|
@accommodation_attachment = @accommodation.accommodation_attachments.create!(:image => a, :accommodation_id => @accommodation.id)
end
@status = 'success'
else
@status = 'error'
@errormessages = @accommodation.errors.full_messages
end
respond_to do |format|
format.js
end
end
def edit
end
def update
if @accommodation.update(accommodation_params)
params[:accommodation_attachments]['image'].each do |a|
@accommodation_attachment = @accommodation.accommodation_attachments.create!(:image => a, :accommodation_id => @accommodation.id)
end
@status = 'success'
else
@status = 'error'
@errormessages = @accommodation.errors.full_messages
end
respond_to do |format|
format.js
end
end
def delete_accommodation
@accommodation = Accommodation.find(params[:id])
@accommodation.destroy
respond_to do |format|
format.js
end
end
def find_accommodation_by_id
accommodation = Accommodation.find(params[:id])
render json: accommodation
end
protected
def news_list
respond_to do |format|
format.js
end
end
private
def accommodation_params
#LINE 75 IS THE NEXT ONE
params.require(:accommodation).permit(:id, accommodation_attachments_attributes: [:id, :accommodation_id, :image])
end
def set_accommodation
@accommodation = Accommodation.find_by_id(params[:id])
@languages = Language.all
@accommodation_attachments = @accommodation.accommodation_attachments.all
@accommodations = Accommodation.all
end
def set_accommodations
@accommodations = Accommodation.all
@article = Article.all
end
end
我考虑住宿的路线:
get '/accommodations/new', to: 'accommodations#new', :as => 'accommodations_new'
post '/accommodations/create', to: 'accommodations#create', :as => 'accommodations_create'
get '/accommodations/:id/destroy', to: 'accommodations#destroy', :as => 'accommodations_destroy'
delete 'delete_accommodation/:id', controller: 'accommodations', action: 'delete_accommodation'
get '/accommodations/:id/edit', to: 'accommodations#edit', :as => 'accommodations_edit'
patch '/accommodations/:id/update', to: 'accommodations#update', :as => 'accommodations_update'
您能在这里找到问题吗?任何帮助表示赞赏。
在我的development.log中,我的POST
编辑
在2016-06-02 16:46:30 +0300由AccommodationsController#create作为JS
参数开始为127.0.0.1启动POST“ / accommodations / create” :{“ utf8” =>“✓”,“ remotipart_submitted” =>“ true”,“ authenticity_token” =>“ iqwKYhO4LVGxIZuP9GHouEKCIbaC0AIB8Yb1EZsjfyTRiaYBH23xAeg65mqSrNUXfuz7t51Px8TI / jj + ZGVinQ ==“,” X-Requested-With“ =”,“-> / ecmascript,application / x-ecmascript,/ ; q = 0.01“,” accommodation_attachments“ => {” image“ => [#,@ original_filename =” food.png“,@ content_type =” image / png“,@headers =“内容处置:表单数据;名称= \”accommodation_attachments [image] [] \“; filename = \” food.png \“ \ r \ n内容类型:image / png \ r \ n”>]}} 1ms内完成了400个错误请求(ActiveRecord:0.0ms)
请参阅这是否适合您
def create
#LINE 12 IS THE NEXT ONE
@accommodation = Accommodation.new
if @accommodation.save
params[:accommodation_attachments]['image'].each do |a|
@accommodation_attachment = @accommodation.accommodation_attachments.create!(:image => a, :accommodation_id => @accommodation.id)
end
@status = 'success'
else
@status = 'error'
@errormessages = @accommodation.errors.full_messages
end
respond_to do |format|
format.js
end
end
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句