gpt4 book ai didi

ruby-on-rails - rails 3 - 在资源上使用 form_for 时出现路径错误

转载 作者:数据小太阳 更新时间:2023-10-29 08:16:01 26 4
gpt4 key购买 nike

在我的 Rails 项目中,当我查看 /subscription/new 时出现以下错误:

NoMethodError in Subscriptions#new

Showing /redacted/app/views/subscriptions/new.html.erb where line #4 raised:

undefined method `subscriptions_path' for #<#<Class:0x007fd02c8bbb28>:0x007fd0308f7a48>

Extracted source (around line #4):

1: <div class="grid_6">
2: <h1>New Subscription</h1>
3: <p>
4: <%= form_for @subscription, :html => { class: 'form_dark' } do |f| %>
5: <% if @subscription.errors.any? %>
6: <div class="error_messages">
7: <h1><%= pluralize(@subscription.errors.count, "error") %> prohibited this subscription from being saved:</h1>

为此,我的路线文件包含 resource :subscription

附加代码信息:

用户模型:

class User < ActiveRecord::Base
devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable

attr_accessible :email, :password, :password_confirmation, :remember_me

has_one :subscription
end

订阅模式:

class Subscription < ActiveRecord::Base
attr_accessible :status, :stripe_token, :user_id, :last_charge, :stripe_card_token
belongs_to :user
has_many :payments, :dependent => :destroy
belongs_to :plan
attr_accessor :stripe_card_token
end

我的 SubscriptionsController 新方法:

def new
@subscription = User.find(current_user.id).build_subscription
end

感谢任何帮助,谢谢!

最佳答案

我相信,当您将 form_for 传递给类似 @subscription(具有 Subscription 类)的对象时,它默认需要 url subscriptions_path。但是由于您已将 subscription 声明为单一资源,因此定义了 url subscription_path。你应该明确指定这条路线

<%= form_for @subscription, url: subscription_path, :html => { class: 'form_dark' } do |f| %>

关于ruby-on-rails - rails 3 - 在资源上使用 form_for 时出现路径错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10939602/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com