2011-09-16 1 views
1

내가 그래서 여기에 레일 매우 새로 온 사람은 간다 :레일 3 : 페이지 리디렉션없이 작업을 실행하려면 버튼을 만드시겠습니까?

내가 그

<%= form_tag "Class/Action"> 
# and  
<% submit_tag "Button name"> 

와 다른 페이지에 결과를 전송하지만 내가 원하는 것은 실행 몇 가지 버튼이 있습니다에 대한 기본을 만드는 방법을 알고 동작 (사용자가있는 페이지는 변경되거나 새로 고침되지 않습니다).

더 나은 대안이 있다면 여기에 내가하고있는 것과 정확히 일치합니다. 사용자에게 선택 사항이 표시되고 선택하면 Juggernaut를 통해 다른 클라이언트에게 선택 사항을 전달하려고합니다. Juggernaut는 Juggernaut.publish (channel, message) 명령을 사용하여 Rails를 통해 사용되므로 페이지를 새로 고치거나 변경하지 않고이 명령을 수행하는 작업을 호출해야합니다.

답변

4

:remote => true 양식을 사용하고 Ajax를 통해 조치를 실행하십시오. 또한 데이터, HTML 또는 JavaScript를 반환하여 사용자가 어떤 일이 발생했는지 알 수있는 쉬운 기회를 제공합니다.

+0

감사합니다. 양식 단추와 반대로 하이퍼 링크와 동일한 효과를 얻을 수있는 비슷한 방법이 있습니까? – Derek

+0

같음': remote' 옵션; 여기에 [속성을 토글하는 예]가 있습니다. (http://buckybits.blogspot.com/2011/09/simple-ajax-property-toggle-in-rails-30.html) 일부 동료를 위해 썼습니다. –

0

form_tag에 : remote => true를 정의하면됩니다. 여기에 예제가 있습니다 ...

<%= form_for(@folder, :remote => true) do |field| %> 
    <%= field.label :Name %> 
    <%= field.text_field :Name, :placeholder => "New Folder" %> 
    <%= field.submit "Create", :disable_with => "Saving..." %> 
<% end %>