홈>
2 개의 컨트롤러가 있습니다-
ItemsController
그리고
TradesController
. 나는
@trade
를 구축하고 있습니다
ItemsController
내부
#show
액션,
TradesController
로 전송
#create
양식이있는 작업.
class ItemsController < ApplicationController
def show
@item = Item.friendly.find(params[:id])
@trade = current_user.requested_trades.build
@approved_trades = @item.trades
respond_to do |format|
format.html
format.json { render :json => @items.to_json(:methods => [:image_url]) }
end
end
class TradesController < ApplicationController
def create
@trade = current_user.requested_trades.build(trade_params)
respond_to do |format|
if @trade.save
format.html { redirect_to @trade, notice: "Your request for trade has been submitted. You will be notified once it is approved or denied." }
format.json { render :index, status: :created, location: @trade }
else
format.html { redirect_to @trade, notice: "Pick another amount" }
end
end
end
private
def trade_params
params.require(:trade).permit(:trade_requester, :trade_recipient, :wanted_item, :collateral_item, :shares)
end
end
그리고 여기 내
Trade
가 있습니다.
모델
class Trade < ActiveRecord::Base
belongs_to :trade_requester, class_name: "User"
belongs_to :trade_recipient, class_name: "User"
belongs_to :wanted_item, class_name: "Item"
belongs_to :collateral_item, class_name: "Item"
end
내
Item's
의 양식은 다음과 같습니다.
show
보기 :
<%= form_for(@trade) do |f| %>
<%= f.hidden_field :wanted_item, value: @item.id %>
<div class="field">
<%= f.text_field :shares, placeholder: "Pick a number between 1 and #{@item.shares}" %>
<%= f.submit "Trade", class: "button minty-button wide-button" %>
</div>
<% end %>
위의
ItemsController
코드
TradesController
에 게시물
create
액션, 그러나
ActiveRecord::AssociationTypeMismatch in TradesController#createItem(#70095717466760) expected, got String(#70095657672800)
라는 오류가 발생합니다.
왜
Item
를 기대 하는가
?
@trade
라면
생성 오류가 발생하면
@trade
로 리디렉션되어야합니다.
.
- 답변 # 1
관련 질문
- "http://rubygems.org" 소스가 있는 레일 4.2.10을 설치할 수 없습니다. 금지 오류가 발생함
- 그룹 절이 호출되면 Distinct 절이 무시됩니다.
- Ruby에서 지역 보석은 무엇입니까?
- 하나의 레일 앱에서 새 앱으로 레일 스키마 및 마이그레이션 전송
- 내 Heroku 취미 개발 Postgres 데이터베이스 시드
- Symbol과 100의 비교 실패
- 이 버그를 수정하기 위해 이미지 자리 표시자를 어떻게 추가합니까?
- 레일에서 DELETE 요청을 시도할 때 500 내부 서버 오류 및 잘못된 테이블 검색
- Rails 6 Octokit을 사용하여 Github 파일 가져오기에서 404를 처리하는 방법
- 콘솔/레이크/레일에서 이스케이프 확인
빠른 해결책은
:wanted_item
에서 숨겨진 필드를 변경하는 것입니다:wanted_item_id
로 :또한 당신의
trade_params
를 확인하십시오 방법은wanted_item_id
를 허용합니다 ::collateral_item
와 비슷한 문제가있을 수 있습니다 다른 형태로.