0

これが私のコードです...

class Article < ActiveRecord::Base
  has_many :registrations

class Registration < ActiveRecord::Base
  belongs_to :article

#app/views/articles/show.html.erb
    <%= link_to 'Register', new_registration_path({:article_id => @article}) %>

#app/views/registrations/_form.html.erb
  <%= f.hidden_field :article_id %>

#app/controllers/registrations_controller.rb
 def new
    @registration = Registration.new
    @registration.article = Article.find params[:article_id]

..そして、これはちょうど桃色に機能します。ただし、 app/views/articles/show.html.erb のコードを取り除き、ルートでこれを行いたいと思います...

    <%= link_to 'Register', new_article_registration_path(@article) %>

...そして、登録ビューで使用している hidden_​​field も削除したいと思います。ビルド メソッドをコントローラーに追加する必要があることはわかっていますが、これをアーティクルまたは登録コントローラーに追加する必要があるかどうかはわかりません。どんな助けでも大歓迎です!

4

1 に答える 1

0

routes.rbで、ネストされたリソースを作成できます。

resources :articles do
  resources :registrations
end

次に、ヘルパーのpolymorphic_urlメソッドの「魔法」を使用してリンクを作成できます。link_to

<%= link_to 'Register', [:new, @article, :registration] %>
于 2012-11-27T20:48:16.040 に答える