невизначений метод `relations_path 'у рейках 3.1

У мене є таке:

Маршрути:

.
.
.
resources :users do
  resources :relationships
end

new.html.erb:

<%= form_for @relationship do |f| %> #This is the line the error is on <div class="field"> <%= f.label :name %> <%= f.text_field :name %> </div> <div class="actions"><%= f.submit %></div> <% end %>
 

relations_controller.rb

class RelationshipsController < ApplicationController

  def new
      @id = params[:user_id]
      @rel_user = User.find_by_id(params[:user_id])
      @relationship = Relationship.new
  end

  def create

  end

end

relationship.rb #model

class Relationship < ActiveRecord::Base
    belongs_to :user

    # TYPES = ['Family', 'Friend', 'Spouse']
end

Я полював на переповненні стаканів і не можу знайти відповідь, хоча, я думаю, це має дещо пов'язане з гніздуванням моїх ресурсів. Я отримую таку помилку:

undefined method 'relationships_path' for #

1
@ apneadiving, тому я бачу, що потрібно використовувати: new_user_relationship, але це не проблема з цим рядком: @relationship = Relationship.new у моєму контролері? Що мені не вистачає?
додано Автор Noah Clark, джерело
Ви вставили ресурси relations , щоб змінити шлях. Відповідно до вашого попереднього запитання, запустіть rake routes , щоб отримати рішення.
додано Автор apneadiving, джерело

1 Відповіді

Ви повинні розуміти, що всі "_path" помічники, створені з файлу route.rb . Таким чином, у вашому випадку маршрут буде генерувати цього помічника users_relationship_path для показу дії.

Але у вашій формі ви використовуєте лише form_for @relationship , яка, як очікується, використовуватиме помічник relationship_path .

Отже, вам слід сказати, що ваша форма допоміжна, щоб використовувати гніздування, як це:

<%= form_for [@rel_user, @relationship]  do |f| %>
5
додано
Це залежить від того, скільки у вас є користувачів, можливо, ви маєте рацію, тому я виправив свою відповідь.
додано Автор megas, джерело
@NoahClark, я отримую @rel_user з коду, то краще знати, що таке користувач. Як я зрозумів, у вас є кілька користувачів, і для кожного з них ви хочете мати відносини.
додано Автор megas, джерело
Я зробив користувачів множиною, оскільки все інше було, але чи ви говорите, що якщо користувач має багато відносин, то він повинен бути єдиним?
додано Автор Noah Clark, джерело
Вам просто потрібен екземпляр користувача та відносини для передачі у форму? Або чому я використовую @rel_user, а не @current_user? Я протестував їх, і вони, як здається, працюють.
додано Автор Noah Clark, джерело
@NoahClark: Немає причин використовувати ті чи інші. Все, що потрібно для першого елемента в цьому масиві, є об'єктом класу User . Другий об'єкт повинен бути об'єктом класу Relationship .
додано Автор Ryan Bigg, джерело