문제

선택 상자 선택에 따라 부분을 렌더링하고 싶습니다. 이것은 사소한 것처럼 보이지만 예를 찾을 수 없습니다.

모든 도움은 대단히 감사합니다.

문안 인사

도움이 되었습니까?

해결책

단순히 양식이 제출 한 페이지의 부분을 렌더링하려는 경우

<%= render :partial => params[:your_selectbox_value_matching_the_partial_you_want] %>

따라서 선택 상자와 같은 경우

<select name='the_partial'>
    <input value="partial1">Some Partial</input>
    <input value="partial2">Another Partial</input>
</select>

렌더링해야합니다

<%= render :partial => params[:the_partial] %>

view 폴더에 _partial1.html.erb 및 partial2.html.erb가 있다고 가정합니다.

다른 팁

나는 다음과 같은 것으로 시작할 것입니다.

app/views/_layout_selector.html.erb:
<form action="<%= request.request_uri -%>">
  <select name='layout'>
    <input value="blue">Blue</input>
    <input value="pink">Pink</input>
    <input value="green">Green</input>
  </select>
</form>

app/views/layouts/blue.html.erb:
<html>
  ...
  <%= render :partial => '/layout_selector' %>
  ...
</html>

(/app/views/layouts/pink.html.erb and green.html.erb similar)

app/controllers/application.rb:
class ApplicationController < ActionController::Base
  DEFAULT_LAYOUT = 'blue'
  layout :pick_layout
  ...
  private
  def pick_layout
    params[:layout] || DEFAULT
  end
end
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top