Я новичок в Rails, и у меня есть две модели (Ticket, User). У одного тикета один пользователь - У одного пользователя есть_много тикетов.
Я хотел бы отобразить «имя пользователя билета» на странице обзора.
Я уже установил свои модели и ассоциации. Следующий код должен отображать таблицу из трех столбцов с именем пользователя посередине, но я получаю сообщение об ошибке :(
"неопределенный метод "пользователи" для..."
Я исхожу из С#, используя Entity Framework. Я думал, что RoR понимает выражение "article.user.firstname"
<% @tickets.each do |article| %>
<tr>
<td class="cell"><%= article.title %></td> //fine
<td class="cell"><%= article.user.firstname %></td> // le error :(
<td class="cell"><%= article.description %></td> //fine
</tr>
<% end %>
Может ли кто-нибудь показать мне, как архивировать это?
Пользователь.rb
class User < ActiveRecord::Base
has_many :tickets, dependent: :destroy
end
Билет.рб
class Ticket < ActiveRecord::Base
belongs_to :user
end
ticket_controller.rb
class TicketsController < ApplicationController
def index
@tickets = Ticket.all.includes(:user)
end
def new
@users = User.all
end
def create
@ticket = Ticket.new(article_params)
@ticket.save
redirect_to @ticket
end
def show
@ticket = Ticket.find(params[:id])
end
private
def article_params
params.require(:ticket).permit(:title, :description)
end
end
ОБНОВИТЬ:
Мне пришлось переопределить мою модель с помощью «rails generate model Ticket title:string message:string user_id». После этого я запустил «rake db: migrate» (после удаления этой таблицы, иначе я получил ошибку).
Затем я устанавливаю ассоциации, записывая «belongs_to:user» в ticket.rb и «has_many:tickets» в свой файл user.rb.
article.user.firstname
? - person Eyeslandic   schedule 06.07.2014