我在创建关联方面遇到了麻烦;
我的模型是表和列(一个表到多列)。
在我的ColumnsController中:
def new
@table = Table.find(params[:id])
@column = @table.columns.build
end
在我的app / views / tables / show.html.erb中:
<%= @table.name %></dd>
<%= render "columns/form" %>
在我的app / views / columns / _form.html.erb中:
<%= form_for @column, :url => {:action => :create, :id => @table.id }do |f| %>
<%= f.label :name %>
<%= f.text_field :name %>
<%= f.button :submit%><% end %>
当我运行它时:
undefined method `model_name' for NilClass:Class
Extracted source (around line #1):
<%= form_for @column, :url => {:action => :create, :id => @table.id } do |f| %>
为什么? : - (
答案 0 :(得分:1)
尝试使用partials和局部变量:
<%= render partial: "columns/form", locals: {table: @table, column: @column} %>
和
<%= form_for column, :url => {:action => :create, :id => table.id }do |f| %>
如果您希望它更简单,您可以这样做:
<%= render partial: "columns/form", locals: {table: @table} %>
和
<%= form_for table.columns.new do |f| %>