Я знаю, что должно быть очень простое решение, но я просто не могу понять, как это сделать.Показать имя пользователя вместо id в частичном представлении Rails
Внутри выставочного шоу, я показываю список всех предложений с претендентом (= Пользователь, который разместил заявку). При размещении новой заявки пользователь user_id успешно сохраняется в таблице ставок.
Я хочу отобразить имя участника торгов вместо его идентификатора. (С @bidder = User.find (@ bid.user_id))
bids_controller.rb: Инфо
class BidsController < ApplicationController
# Create new bid
def create
# find Auction related to new Bid
@auction = Auction.find(params[:auction_id])
@bid = @auction.bids.create(bid_params)
@bid.user_id = current_user.id
# Find the bidder within User Table
@bidder = User.find(@bid.user_id)
@bid.save
redirect_to auction_path(@auction), :notice => "Bid placed"
end
Частичный вид: просмотр \ предложения \ _bid.html.erb
<p>
<strong>Bidder:</strong>
<%= @bidder.name %>
</p>
<p>
<strong>Bid-Amount:</strong>
<%= bid.amount %>
</p>
<p>
<%= link_to 'Destroy Bid', [bid.auction, bid],
method: :delete,
data: { confirm: 'Are you sure?' } %>
</p>
Все это отображается в аукционе Show View:
видом \ aucti Дополнения \ show.html.erb
<h2>Bids</h2>
<%= render @auction.bids %>
<h2>Place a Bid:</h2>
<%= render 'bids/form' %>
<h2>Comments</h2>
<%= render @auction.comments %>
<h2>Add a comment:</h2>
<%= render 'comments/form' %>
Ошибка:
NoMethodError in Auctions#show Showing C:/Users/santa/Documents/rails/app/views/bids/_bid.html.erb where line #3 raised:
undefined method `name' for nil:NilClass Extracted source (around line
3): 1 2 3 4 5 6
<p> <strong>Bidder:</strong> <%= @bidder.name %> </p> <p>
Trace of template inclusion: app/views/auctions/show.html.erb
имя существует в таблице Users
Спасибо, вот это! (Не могу поверить, что я провел 4 часа, пытаясь ...) Я соглашусь через 8 мин. –
Хорошо. Это случилось когда-то :) –