Ruby on rails 向嵌套模型rails 4.0添加数据

Ruby on rails 向嵌套模型rails 4.0添加数据,ruby-on-rails,ruby,Ruby On Rails,Ruby,rails新手,不知道如何做到这一点。我已经使用Desive实现了一个用户登录系统,我正在尝试让用户创建多个“列表”。有点像craigslist类型的网站。我可以从rails控制台填充数据库,但我不知道如何将其放到站点上 我有以下型号: listing.rb class Listing < ActiveRecord::Base belongs_to :user default_scope -> { order('created_at DESC') } #add val

rails新手,不知道如何做到这一点。我已经使用Desive实现了一个用户登录系统,我正在尝试让用户创建多个“列表”。有点像craigslist类型的网站。我可以从rails控制台填充数据库,但我不知道如何将其放到站点上

我有以下型号:

listing.rb

class Listing < ActiveRecord::Base
  belongs_to :user 
  default_scope -> { order('created_at DESC') }

  #add validations

  validates :user_id, presence: true
end

以下内容适用于遇到此问题的任何人:

在routes.db中,我将列表放在一个块中:

 resources :users do
      resource :listings
  end
对于new/show/create方法,我确保首先搜索用户(注意,因为我使用的是designe当前的_user.id)

最后,将new.html.erb中的表单_更改为:

<%= form_for [@user, @listing] do |f| %>
  <%= f.label :title, 'Title' %> <br />
  <%= f.text_field :title %>

  ...

  <%= f.submit "submit" %>
<% end %>


...
我希望这不是因为
:tile
在您的
列表参数中。那是打字错误还是你没注意到?你在日志文件中看到错误了吗?很好,我不知怎么错过了。然而,这不是问题所在,它甚至没有给出错误。我现在在OP中发布了日志输出。你使用的是Desive 3.0.0.rc吗?是的,我使用的是3.0.0rcI,我也有同样的问题。我按照你的建议做了,但是当我访问url列表/1/编辑时,编辑表单仍然会弹出:(如果我像你说的那样修改路由文件,我会遇到问题。你能发布完整的路由文件吗?
<h1> POST A NEW LISTING </h>

    <%= form_for @listing do |f| %>
      Title: <%= f.text_field :title %> <br />
      General Info: <%= f.text_field :general_info %> <br />

      <%= f.submit %>
    <% end %>
Started POST "/listings" for 127.0.0.1 at 2013-07-04 17:37:53 -0600
Processing by ListingsController#create as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"mlyDb24OMQkniOCFQ1JTvzxjplHk7kMgzEBEFBH8hGw=", "listing"=>{"title"=>"title should go here", "general_info"=>"hope this works"}, "commit"=>"Create Listing"}
  [1m[35m (0.1ms)[0m  begin transaction
  [1m[36m (0.1ms)[0m  [1mrollback transaction[0m
  [1m[35mUser Load (0.3ms)[0m  SELECT "users".* FROM "users" WHERE "users"."id" = 1 ORDER BY "users"."id" ASC LIMIT 1
  Rendered listings/new.html.erb within layouts/application (4.4ms)
Completed 200 OK in 17ms (Views: 10.4ms | ActiveRecord: 0.5ms)
 resources :users do
      resource :listings
  end
  def show
    @listing = Listing.find(current_user.id)
  end

  def new
    @user = User.find(current_user.id)
    @listing = @user.listings.build
  end

  def create
    @user = User.find(current_user.id)
    @listing = @user.listings.build(listing_params)

    if @listing.save
      flash[:success] = "Success"
      redirect_to root_path 
    else
     render :action => 'new'
    end

  end
<%= form_for [@user, @listing] do |f| %>
  <%= f.label :title, 'Title' %> <br />
  <%= f.text_field :title %>

  ...

  <%= f.submit "submit" %>
<% end %>