【问题标题】:form_for trying to access non-existent path_helper with subdomainform_for 尝试使用子域访问不存在的 path_helper
【发布时间】:2012-03-08 06:14:02
【问题描述】:

在我的“购买”子域中,我有以下路线:

  constraints Subdomain::Buy do
    scope module: :buy do
      resources :users do
        resources :messages
      end

我正在使用以下代码制作新的消息表单:

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

使用控制器动作:

class Buy::MessagesController < ApplicationController
  def new
    @user = User.find(params[:user_id])
    @message = Buy::Message.new(receiver: @user, sender: current_user)
    render
  end

但是页面抛出以下异常:

undefined method `user_buy_messages_path'

当我检查rake routes 时,我得到以下方法:

          user_messages GET    /users/:user_id/messages(.:format)                           buy/messages#index
                           POST   /users/:user_id/messages(.:format)                           buy/messages#create
          new_user_message GET    /users/:user_id/messages/new(.:format)                       buy/messages#new
         edit_user_message GET    /users/:user_id/messages/:id/edit(.:format)                  buy/messages#edit
              user_message GET    /users/:user_id/messages/:id(.:format)                       buy/messages#show
                           PUT    /users/:user_id/messages/:id(.:format)                       buy/messages#update
                           DELETE /users/:user_id/messages/:id(.:format)                       buy/messages#destroy

所以问题是,我不确定为什么子域“购买”会出现。form_for 应该使用user_messages_path 而不是user_buy_messages_path


附注:

型号:

class Buy::Message < ActiveRecord::Base
  belongs_to :sender, class_name: '::User'
  belongs_to :receiver, class_name: '::User'
end

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 controller routes form-for


    【解决方案1】:

    你可以通过 :url 选项强制你的 form_for 的 url

    <%= form_for [@user,@message], :url => user_messages_path do |f| %>
    

    【讨论】:

      猜你喜欢
      • 2012-12-29
      • 1970-01-01
      • 1970-01-01
      • 2013-02-15
      • 1970-01-01
      • 1970-01-01
      • 2011-08-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多