0

RailsとjqPlotを使用して、Webページにデータを表示しています。グラフは日付ごとに柔軟である必要があります(たとえば、ユーザーは時間範囲を選択でき、グラフは自動的に更新されます)。これまでの私のコードは次のとおりです(私のビューで):

<%= form_tag home_event_trends_path(params[:timePeriod]), :method => 'post' do %>
  <p>
    <%= select_tag :timePeriod, options_for_select(["2 Hours Ago", "1 Week Ago", "3 Months Ago"], :selected => params[:timePeriod]) %>
    <%= submit_tag "Refresh", :name => nil %>
  </p>
<% end %>

Home私のコントローラーでevent_trendsあり、アクションであると私は思います。(パスはlocalhost:3000 / home / event_trends.3102030です)

これは正常に機能します。ただし、別のパラメーターをコントローラーに渡す必要もあります。このWebページにはすでにパラメーターが渡されていますparams[:format](これはURLの3102030であり、表示するイベントに基づいて変更されます)。これも渡す必要があります。私はもう試した:

home_event_trends_path(params[:timePeriod][:format])
home_event_trends_path(params[:timePeriod],[:format])
home_event_trends_path(params([:timePeriod][:format]))

とりわけ。

コントローラーにビューから複数のパラメーターを表示させるにはどうすればよいですか?

4

2 に答える 2

2

GETを使用して古い ものを渡し、POSTを使用して新しいものを渡しているようです。これは本当にあなたが望むものですか?なぜコントローラーに古いものが必要なのですか?timePeriodtimePeriodtimePeriod

グラフを表示したいので、つまり、副作用を引き起こさずにデータを取得したいので、timePeriodGETを使用して新しいものだけを送信する必要があると思います。

<%= form_tag home_event_trends_path(), :method => 'get' do %>
    <p>
        <%= select_tag :timePeriod, options_for_select(["2 Hours Ago", "1 Week Ago", "3 Months Ago"], :selected => params[:timePeriod]) %>
        <%= select_tag :format, options_for_select([...], :selected => params[:format]) %>
        <%= submit_tag "Refresh", :name => nil %>
    </p>
<% end %>

また、私はAnthonyに同意しformatます-パラメーターを変更してみてください-コントローラーを調べて、使用されている場所を確認し、名前を変更するだけです。

于 2012-08-01T15:40:30.563 に答える
1

イダンの答えに反対するものは何もありませんが、これは私がやったことでした(将来のGoogle社員のために...)

私からしてみれば:

<%= form_tag home_event_trends_path, :method => 'get' do %>
  <p>
    <%= select_tag :timePeriod, options_for_select(["2 Hours Ago", "1 Week Ago", "3 Months Ago"], :selected => params[:timePeriod]) %>
    <%= text_field_tag :issue, params[:issue] %>
    <%= submit_tag "Refresh", :name => nil %>
  </p>
<% end %>

そして、私のホームコントローラーで:

def event_trends
  @eventTrend = Home.eventTrend(params[:timePeriod], params[:issue])
end

そして最後に、モデル:

def self.eventTrend(date, id)
  # dirty work
end

これは私にとって最もうまくいくようです。GETリクエストのURLを変更できるようにすることにissueしました。後で使用できるように、パラメータを検索ボックスにすぐに保存します。

これが将来誰かに役立つことを願っています!

于 2012-08-01T21:47:11.840 に答える