Rails помогает с выбором и рендерингом частичного - PullRequest
2 голосов
/ 29 марта 2011

Хотите создать выбор, который сообщает, какую информацию передать частичному в приложении Rails 3.

В настоящее время.Допустим, по умолчанию установлено значение

<% orders_date_range = @orders.closed_today %>

Затем

<div id="reports">
  <%= render :partial => "report_details", :locals => { :orders => orders_date_range } %>
</div>

Можно ли создать тег выбора для передачи в orders_date_range?Или есть лучший способ сделать это?


ОБНОВЛЕНИЕ

<% orders = @orders.closed_today %>
<% @options = [["this week", @orders.closed_this_week],["this year", @orders.closed_this_year]]%>
<%= select 'orders', 'order', @options.collect {|f| [f[0], f[1]]}, :remote => true %>


<div id="reports">
   <%= render :partial => "report_details", :locals => { :orders => orders } %>
</div>

Не знаю почему, но будет работать только с «заказы», ​​«заказ» для выбора.

Applicaton.js

$("#orders_order").change(function(){
  $.getScript("reports");
});

reports.js.erb

$("#reports").html("<%= escape_javascript(render :partial => 'report_details', :locals => { :orders => params[:selected] } ) %>");

1 Ответ

0 голосов
/ 29 марта 2011

Вероятно, было бы здорово сделать это как AJAX ....

Form.erb:

#call this at the top of your view
<%= javascript_include_tag :defaults %>

<%= select 'orders', 'option', @options.collect {|f| [f[0], f[1]]}, :onchange => remote_function(:url => {:action => :render_my_partial}, :with => 'Form.Element.Serialize(this)' %>

Контроллер:

def form
    @options = [["option1", option1],["option2", option2]...] 
end 

def render_my_partial
  render update do |page|
    page.replace_html 'reports', :partial => 'report_details', :orders => params[:orders][:option] 
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...