form_for ўкладзенага рэсурсу (у адзіным ліку), не выкарыстоўваючы правільны шлях памочніка

Я, верагодна, рабіць нешта дурное, але ...

дадатак/мадэль/user.rb:

class User < ActiveRecord::Base
has_one :totem

конфіг/routes.rb:

resources :users do
    resource :totem
end

дадатак/кантралёры/totems_controller.rb:

class TotemsController < ApplicationController

    before_filter do
        @user = User.find(params[:user_id])
    end

    def new
        @totem = @user.build_totem
    end

end

дадатак/праглядаў/татэмы/new.html.erb:

<%= form_for [@user, @totem] do |f| %>
<% end %>

Потым, калі я перайсці да /карыстальнікаў/123/татэма/новы , я атрымліваю памылку:

ActionView::Template::Error (undefined method `user_totems_path' for #
2
дададзена аўтар aidan, крыніца

8 адказы

Found my answer in another question: Ruby on rails: singular resource and form_for

дадатак/мадэлі/totem.rb:

class Totem < ActiveRecord::Base
    model_name.instance_variable_set :@route_key, 'totem'
    belongs_to :user
end

(not sure why this Q&A didn't appear in my earlier searches...)

5
дададзена

Found my answer in another question: Ruby on rails: singular resource and form_for

дадатак/мадэлі/totem.rb:

class Totem < ActiveRecord::Base
    model_name.instance_variable_set :@route_key, 'totem'
    belongs_to :user
end

(not sure why this Q&A didn't appear in my earlier searches...)

5
дададзена

Ці вы маглі б проста выкарыстоўваць

form_for @totem, :url => user_totem_path(@user) do |f|
1
дададзена

Ці вы маглі б проста выкарыстоўваць

form_for @totem, :url => user_totem_path(@user) do |f|
1
дададзена

замест

resource :totem

яна павінна быць

resources :totem 
0
дададзена
Я выкарыстоўваю рэсурсы раней, але я палічыў за лепшае б выкарыстоўваць рэсурс , таму што кожны карыстальнік мае толькі адзін татэм і рэсурс генеруе некалькі акуратней URL.
дададзена аўтар aidan, крыніца

замест

resource :totem

яна павінна быць

resources :totem 
0
дададзена
Я выкарыстоўваю рэсурсы раней, але я палічыў за лепшае б выкарыстоўваць рэсурс , таму што кожны карыстальнік мае толькі адзін татэм і рэсурс генеруе некалькі акуратней URL.
дададзена аўтар aidan, крыніца

Я не мог зразумець, чаму ж. Я выкарыстаў гэты шлях (пры ўмове, URL-адрасы для form_for), каб абыйсці гэтую праблему

<%= form_for [@user, @totem], :as => :totem, :url => user_totem_path do |f| %>

Акрамя таго, некаторыя даследаванні ад Google даведацца, што ёсць паведамленне пра памылку ў папярэдніх рэйках. Але я не ўпэўнены, ці з'яўляецца гэта было выпраўлена ці не ў апошніх рэйках. Вось спасылка, калі вы хочаце зрабіць больш даследаванняў

https://rails.lighthouseapp.com/projects/8994/tickets/267

0
дададзена

Я не мог зразумець, чаму ж. Я выкарыстаў гэты шлях (пры ўмове, URL-адрасы для form_for), каб абыйсці гэтую праблему

<%= form_for [@user, @totem], :as => :totem, :url => user_totem_path do |f| %>

Акрамя таго, некаторыя даследаванні ад Google даведацца, што ёсць паведамленне пра памылку ў папярэдніх рэйках. Але я не ўпэўнены, ці з'яўляецца гэта было выпраўлена ці не ў апошніх рэйках. Вось спасылка, калі вы хочаце зрабіць больш даследаванняў

https://rails.lighthouseapp.com/projects/8994/tickets/267

0
дададзена