リンクを使用して、インデックスビューの1つ以上のアイテムに「アクティブ」または「非アクティブ」とマークすることができます。リンクのテキストは状態を認識する必要があります。したがって、対応する属性がfalseまたはnullの場合は「アクティブとしてマークする」、trueの場合は「非アクティブとしてマークする」がデフォルトになります。ユーザーがリンクをクリックし、コントローラーで属性が更新されると、リンクテキストは新しい状態に基づいて更新されます。railsのリスト項目に対して `update_attribute`を呼び出すと、実際にjqueryを使ってhtmlを更新できますか?
私が読んで幸せです
update.js.erb
#how do I identify which element to update?
$('#item[13456]').html("State aware text for link_to")
VIEW
- for item in @items
= item.name
= link_to "Mark as Active", item_path(item), :method => :put, :remote => true. :id => "item[#{item.id}]"
CONTROLLER
...
respond_to :html, :js
...
def update
@item = Item.find(params[:id])
if @item.update_attributes(params[:item])
#Not sure of how to respond to .js here
end
end
...
...私はここWAYオフですが、これは私がしようとしているコードの小さなサンプルです任意のAPI、ブログ、チュートリアルなど私はこの仕事の周りに私の手を渡すことはできません。どんな助けや指導も大歓迎です!
ありがとうございました。私はこのコードを払っており、それは私に(私が考える)成功への牽引力を与えてくれました。あなたの提案を置いた後は、必要に応じて '@ item.active'を変更しますが、リンクを更新して状態を変更することはありません。また、link_toタグに ':remote => true、:method =>:post'を追加する必要がありました。そして、私が提案したjQueryをすべて無効にしたとき、私はまったく同じ結果を得ました。私は何が欠けていますか? –
@patrick、あなたはクリック時にアイコンの外観を更新しようとしていますか? – Trip
ご理解いただきありがとうございます。実際には、リンクの表示テキストを更新して、 '@ item.active'の値を反映しようとしています。 –