2012-05-07 9 views
0

has_many:throughとbelongs_toに関するモデル間のリレーションを整理しました。また、移行を使用して必要なIDフィールドをデータベーステーブルに追加しました。コントローラの作成方法を適切に呼び出す方法/場所

私の質問は:正確にどのように、どこ私がすべき

def new 
    feed_url = params[:feed_url] 
    @subscription = Subscription.new 

    redirect_to reader_url, notice: "You are now subscribed to: "+Feed.find_by_feed_url(feed_url).title 
    end 

私はちょうど把握することはできません。私は私の新しい方法でこれを行う

<%= link_to "subscribe", new_subscription_path(feed_url: @feed.feed_url)%> 

:ユーザーがリンクをクリックした後、サブスクリプションテーブルに新しい行を作成するサブスクリプションリンクが必要なので、私のcreateメソッドを呼び出すことができます。

また、私のテーブルはここに正しい私の団体であることを確認するために:

User has_many :feeds, :through => :subscriptions, dependent: :destroy 

| Usersテーブルには列があります。id

Subscription belongs_to :feed 
Subscription belongs_to :user 

|サブスクリプションテーブルには列があります:ID、USER_ID、feed_idをID

:|

Feed has_many :users, :through => :subscriptions 

テーブルが列を持っているフィード

答えて

4

あなただけ

newアクションは、ユーザーが作成されているリソースの詳細を充填するためのいくつかのフォームを表示するように作られている)RESTの全体的なアイデアを壊れました。 HTTP動詞GET(ログにはnewアクションが表示されます)でも、リソースを変更してはならないアクションが開始されます。

フォームが不要な場合は、createアクションに直接「アクセサ」を作成することができます。しかし、link_to経由では作成しないでください。なぜなら、ユーザーはjavascriptが有効になっていなければ、それを適切にクリックすることができないからです。

button_to 'Create', resources_path(your_params) 

そして、作成自体あなたcreateアクション内部を定義します。button_toを使用してください。

+0

私のbutton_toを作成しようとすると、デフォルトではないようですが、表示されません。 –

+0

あなたは何を持っていますか?あなたはもっと説明できますか?あなたは 'button_to" Create "、subscriptions_path(feed_url:@ feed.feed_url)'のようなものを書く必要がありました。 – jdoe

+0

うわー、あなたは正しいです。正しくルーティングされていないので、私はsubscriptions_pathでsを見つけられませんでした。ありがとう! –

関連する問題