[RUBY-ON-RAILS] ActionController :: ParameterMissing (PARAM가 없거나 값이 비어 : 필름) :
RUBY-ON-RAILSActionController :: ParameterMissing (PARAM가 없거나 값이 비어 : 필름) :
그래서, 난 내 응용 프로그램에서 영화 페이지를 방문하려고 다음과 같은 오류를 받고 있어요 :
ActionController::ParameterMissing (param is missing or the value is empty: film):
2014-07-24T22:04:44.622356+00:00 app[web.1]: app/controllers/saas_admin/films_controller.rb:54:in `permitted_params'
아래에있는 내 영화 컨트롤러 코드를 참조하십시오
films_controller.rb
class SaasAdmin::FilmsController < SaasAdminController
inherit_resources
belongs_to :studio, :finder => :find_by_id!, :param => :studio_id, :class_name => Studio
before_filter :set_sort_fields, :only => :edit
before_filter :build_collections, :only => [:new, :create, :edit, :update]
def create
create! { parent_path(parent.id) } # Redirect to studio in case studio_id is changed
end
def update
@film = Film.find_by_permalink(params[:id])
respond_to do |format|
if @film.update(permitted_params)
format.html { redirect_to saas_admin_studio_path(@film.studio), notice: 'Film was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: 'edit' }
format.json { render json: @film.errors, status: :unprocessable_entity }
end
end
end
def index
redirect_to parent_path(parent.id)
end
def show
@clips = resource.clips.paginate(:page => params[:page], :per_page => 30, :order => 'clips.position')
end
protected
def resource
# @film ||= end_of_association_chain.find_by_permalink!(params[:id])
@film ||= end_of_association_chain.find_by_permalink!(params[:id])
end
def collection
@films ||= end_of_association_chain.paginate(:page => params[:page], :per_page => 30, :order => 'films.created_at')
end
def set_sort_fields
resource.sort_name = '' if resource.name == resource.sort_name
end
def build_collections
@studios ||= Studio.find(:all)
end
def permitted_params
params.require(:film).permit(:name, :sort_name, :description, :short_description, :meta_data,
:poster, :amazon_link, :active, :trackable, :country_ids => [])
end
end
이것은 무엇을 할 수 있는가? 나는 조금 그것을 알아 내기 위해 노력했지만 아마 눈의 신선한 세트는 그것의 일이 아니라 간단한 찾을 수 있습니다.
건배!
편집하다
여기에 영화보기 코드입니다 / new.html.erb
<h1><%= @page_title = "New #{resource_class}" %></h1>
<%= form_for resource, :url => collection_path, :html => { :multipart => true } do |f| -%>
<%= render :partial => "form", :locals => { :f => f } %>
<% end -%>
<% content_for :sidebar do %>
<%= render :partial => "saas_admin/shared/sidebar" %>
<% end %>
및 영화 / edit.html.erb
<h1><%= @page_title = "Edit #{resource_class}" %></h1>
<%= form_for resource, :url => saas_admin_studio_film_path(parent, resource), :html => { :multipart => true } do |f| -%>
<%= render :partial => "form", :locals => { :f => f } %>
<% end -%>
<% content_for :sidebar do %>
<%= render :partial => "saas_admin/shared/sidebar" %>
<% end %>
편집 2
참고로 여기가 작동 때 허용 params를 정의하는 방법입니다 :
def permitted_params
{:film => params.fetch(:film, {}).permit(
:name, :sort_name, :description, :short_description, :meta_data,
:poster, :amazon_link, :active, :trackable)}
end
해결법
-
==============================
1.당신이 (당신의 permitted_params 코드에서 위에서 지정한) strong_params 통해 매개 변수 '영화'를 필요로 지정한 때문에이 일어나고있다.
당신이 (당신의 permitted_params 코드에서 위에서 지정한) strong_params 통해 매개 변수 '영화'를 필요로 지정한 때문에이 일어나고있다.
어쨌든 뷰 측하고있다 (기타 그것 링크 또는 폼 / 여부.), 그가 '영화'아래에 중첩 된 매개 변수를 통과하지
당신이 컨트롤러 액션에서 인상 params.inspect에 있다면 예.), 당신은 "영화"에 대한 노드가 없음을 볼 것입니다.
대부분의 경우 잘못은 무엇을보기에 당신이 가지고있는 형태의 코드를 사용하면 예를 들어 때 form_tag를 사용하고, 이러한 매개 변수를 제대로 둥지로 설정되어 있지 않은지이다?
-
==============================
2.내가 백엔드로 데이터를 전송하는 각도 JS 양식을 사용하는 경우도이 문제를 가지고 각 JS가 형성에서 난 아무것도 기입하지 않은 경우 4. 레일 한 오류가 ActionController :: ParameterMissing (PARAM가 없거나 값이 비어 표시됩니다 :.
내가 백엔드로 데이터를 전송하는 각도 JS 양식을 사용하는 경우도이 문제를 가지고 각 JS가 형성에서 난 아무것도 기입하지 않은 경우 4. 레일 한 오류가 ActionController :: ParameterMissing (PARAM가 없거나 값이 비어 표시됩니다 :.
({} 막) 강한 파라미터로는 I를 params.fetch를 추가하여 수정 :
params.fetch(:film, {}).permit(:name, :sort_name, :description, :short_description, :meta_data, :poster, :amazon_link, :active, :trackable, :country_ids => [])
나는 ActionController :: ParameterMissing을 방지하기 위해 코드 예제를 참조 (PARAM가 없거나 값이 비어 : 필름)
내가 당신을 도울 바랍니다.
-
==============================
3.왜 사용하지 :
왜 사용하지 :
def creation_params params.permit(:film) end
그것은 나를 위해 일하는! ;)
from https://stackoverflow.com/questions/24944871/actioncontrollerparametermissing-param-is-missing-or-the-value-is-empty-film by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 어떻게 Heroku가에 레일 응용 프로그램을 배포하기 위해이 문제를 해결할 수 있습니까? (0) | 2020.02.26 |
---|---|
[RUBY-ON-RAILS] 서버를 시작할 때 세그먼트 오류를 레일? (0) | 2020.02.26 |
[RUBY-ON-RAILS] 왜 "방지 추가 대화 상자 만들기에서이 페이지의"경고 상자에 나타납니다? (0) | 2020.02.26 |
[RUBY-ON-RAILS] (레코드의 ID되지 않음) 필드에 PostgreSQL의 시퀀스를 작성 (0) | 2020.02.26 |
[RUBY-ON-RAILS] Windows 7에서 MySQL2 보석을 설치할 수 없음 (0) | 2020.02.26 |