0

私のorder.rbファイルには 6 つの州があります。状態を簡単に変更できるように、現在の状態以外のそれぞれにアクセスしてドロップダウン メニューを設定したいと考えています。私はこれを思いつきました。関数は明らかに機能せず、状態はwritten_like_this.

<% order.state_paths.to_states.each do |state| %>
    <%= link_to(state.to_s, order.adjust(state)) %>
<% end %>

上記のメニューからのクリックを解釈し、レコードを選択状態に遷移させるキャッチオール メソッドも書きたいと思います。(疑似コード) のようなもの:

def adjust(state)
  @order = Order.find(params[:id])
  @order.state = state
end

どんな考えでも素晴らしいでしょう。乾杯!

4

1 に答える 1

0

私はそれを理解しました。

def adjust
  session[:return_to] ||= request.referer
  @doc = Doc.find(params[:id])
  state = params[:state]
  respond_to do |format|
    @doc.update_attribute(:state, state)
    @doc.create_activity state.to_sym, owner: current_user
    format.html { redirect_to root_url, notice: "#{@doc.title} has now been #{state}." }
    format.json { render json: @doc }
  end
end

そして、私はこのようなボタンを作りました:

<% activity.trackable.state_paths.events.each do |s| %>
  <%= link_to(s.to_s.titlecase, adjust_path(s, activity.trackable)) %>
<% end %>

ブーム。

于 2013-02-27T04:43:02.210 に答える