내 컨트롤러에서 사용자에게 모달 창 (jquery UI 대화 상자 사용)을 표시하려고합니다. 예를 들어컨트롤러에서 모달 시작
: 당신의 도움에 대한
def create
if params[:id]
#do something
else
#show a modal window with a partial as content
end
들으 =)
내 컨트롤러에서 사용자에게 모달 창 (jquery UI 대화 상자 사용)을 표시하려고합니다. 예를 들어컨트롤러에서 모달 시작
: 당신의 도움에 대한
def create
if params[:id]
#do something
else
#show a modal window with a partial as content
end
들으 =)
이것은 수정이지만, 아마 당신의 새로운 당신
컨트롤러
def create
if params[:id]
#true code
else
render :new
@dialog = true
end
end
을 위해 작동합니다 .html.erb
<% if @dialog %>
<%= #dialog code %>
<% else %>
<%= #normal code %>
<% end %>
희망 사항.
UPDATE
올바른 내가 코멘트에서 당신을 물었다 당신은이
을 할 수있는 경우 new.html.erb
당신이
<% form_for @product do |f| %>
<% if @product.errors %>
<%= #dialog code %>
<% end %>
<% end %>
안녕하세요, thx 답변입니다. 이미이 솔루션을 찾았지만 좀 더 우아한 접근 방법을 찾고 싶었습니다. – Flyingbeaver
당신은 jQuery를 표시 할 수 없습니다 할 수 서버 측에서 JavaScript를 실행할 수 없기 때문에 컨트롤러에서 대화 상자를 열 수 있습니다. 가장 가까운 것은 클라이언트 측에서 평가할 JavaScript 문자열을 되돌려 보내는 것입니다. 그러나 이것은 매우 나쁜 습관입니다. 최선의 방법은 서버 측에서 무언가를 사용하여 클라이언트 측에서 대화 코드를 작성하는 것입니다. erb 템플릿에 많은 자바 스크립트가 필요하지 않다면 거기에서 함수를 호출하거나 AJAX를 통해 제출하고 핸들러에서 대화 상자를 수행하거나 렌더링 할 수있는 js.erb 템플릿을 렌더링 할 수 있습니다 자바 스크립트를 사용합니다. 위의 예를 원한다면 알려주십시오. 제가 제공 할 수 있는지 알아 보겠습니다.
글쎄, 내가 가장 깨끗한 방법, 그리고 DRYest 방법을보고 관심이 있어요 :) – Flyingbeaver
제출 또는 자바 스크립트 메소드로 작성 액션을 호출하는 방법 – shingara
제출을 사용합니다. – Flyingbeaver
이렇게 하시겠습니까?'@valid_attributes 그러면 저장하고 리디렉션하고 다른 것을 렌더링하고 모달 폼을 표시합니다 .' ?? – Rohit