2

これはおそらく非常に単純ですが、ネストされたリソースがあり、次のように言えます。

地図。リソース :book, :has_many => :pages

page.count を 1 増やす "turn" というアクションを作成しました。link_to を使用してこのアクションを呼び出すにはどうすればよいですか? よろしくお願いします。

4

1 に答える 1

0

あなたがどこに来るかを伝えるのは難しいpage.countです。Railish では、pages.count('s' に注意してください) が見つかります。さらに、count(およびsize) は、配列とハッシュなどの読み取り専用属性です。要素数を返す ruby​​ 提供。設定しませんcount

次に、あなたのturnアクションがどこにあるのかわかりません。本ですか、それともページですか? そして、それが何をした後、何が起こるはずですか?最後に、ルートはアクションをアクションにするものです。ルートがなければ、ただの関数です。

ここでは、Book 内の Page が訪問された回数を保存しようとしていると仮定します。Page モデルにreadsorなどと呼ばれるインスタンス変数を用意することをお勧めします。times_viewedBook モデルが RESTful ルーティングを使用していると仮定すると、Book のshowアクションで、表示されている Page モデルのインスタンス変数を作成しreads、ビューをレンダリングする前にその属性をインクリメントします。

Facebook で「いいね」がどのように機能するかのようなリンクを作成しようとしている場合、つまり、ユーザーを別のページに移動させずにテーブル内のレコードを更新したい場合は、link_to_remote* といくつかの JavaScript を使用する必要があります。その場合は、その件に関する Railscast を参照してください。

*Rails 3 の時点では、 だけにlink_to_remoteなったと思います。link_to:remote => true

于 2011-12-04T21:09:38.253 に答える