【发布时间】:2015-06-28 17:34:08
【问题描述】:
我有一个表单可以在views/users/show.html.erb 中创建新的“农场”(因为农场没有自己的视图):
<div id="add">
<%= form_for(:farm, :url => {:action => :create}) do |f| %>
<%= f.label :name %><br />
<%= f.text_field :name %>
<%= f.label :region %><br />
<%= f.text_field :region %>
<%= f.label :north %><br />
<%= f.text_field :north %>
<%= f.label :east %><br />
<%= f.text_field :east %>
<%= f.label :description %><br />
<%= f.text_area :description, rows: "6" %><br />
<%= f.label :categories %><br />
<%= f.text_area :categories, rows: "1" %><br />
<%= f.label :products %><br />
<%= f.text_area :products, rows: "2" %><br />
<%= f.submit "Vstavi" %>
<% end %>
</div>
farms_controller 发出创建操作:
class FarmsController < ApplicationController
before_filter :authenticate
def create
@farm = current_user.farms.build(params[:farm])
if @farm.save
flash[:success] = "Farm created!"
redirect_to 'users/show'
else
render 'users/show'
end
end
end
当然,当我尝试在我得到的视图中创建一个新农场时:
模板丢失
缺少模板用户/使用 {:handlers=>[:erb, :rjs, :builder, :rhtml, :rxml], :formats=>[:html], :locale=>[:en 创建, :en]} 在视图路径“/media/rok/LOCAL DISC/Users/Koko/Documents/KMETIJE/kmetije/app/views”中
然后我将创建操作也添加到 users_controller,但我显然做错了什么:
class UsersController < ApplicationController
def show
@user = User.find(params[:id])
@farms = @user.farms.paginate(:page => params[:page])
end
def new
@user = User.new
end
def create
Farm.create
redirect_to :action => :show
end
end
我可能还应该显示我的路线文件:
Kmetije::Application.routes.draw do |map|
resources :users
resources :sessions, :only => [:new, :create, :destroy]
resources :farms, :only => [:create, :destroy]
root :to => 'pages#home'
match '/home', :to => 'pages#home', as: 'home'
match '/info', :to => 'pages#info', as: 'info'
match '/signin', :to => 'sessions#new', as: 'signin'
match '/users/1', :to => 'users#show', as: 'user'
match '/signout', :to => 'pages#home', as: 'signout'
end
感谢您的宝贵时间。
【问题讨论】:
-
用
form_for(:farm, :url => farms_path)替换form_for(:farm, :url => {:action => :create})
标签: ruby-on-rails