문제

jQuery 플러그인을받은 사람이 있습니까? 제시 가능 Rails 응용 프로그램에서 올바르게 실행합니다. 그렇다면 설정 방법에 대한 힌트를 공유 할 수 있습니까? "제출 업"을 만드는 데 어려움이 있습니다.


IIRC, 당신은 단순히 JavaScript 내에서 Ruby Code를 호출 할 수 없습니다 (내가 잘못하자 :-). RJ를 의미합니까 ??? 프로토 타입에만 국한되지 않습니까? jQuery를 사용하고 있습니다.


업데이트:
어 .. 그러나 IIRC 내 주요 문제는 다음과 같습니다.

나는 RESTFUL REPURCES를 사용하고 있습니다. 그래서 블로그를 모델링하여 리소스 "게시물"이 있어야한다고 가정 해 봅시다. 게시물을 편집하려면 (예 : ID 8으로 게시물), 내 업데이트는 http를 통해 URL로 전송됩니다. http://my.url.com/posts/8 HTTP 동사 게시물과 함께. 그러나이 URL은 내 레일 코드에 구성됩니다. 그렇다면 제출 업체를 jQuery 코드로 어떻게 얻을 수 있습니까? 이것은 편안한 코드이므로 내 업데이트 URL은 모든 게시물에 따라 변경됩니다.

도움이 되었습니까?

해결책 2

지금 만 이것을 제기 한 것에 대해 실례하지만 방금 코드를 다시 살펴볼 시간을 찾았습니다. 다음 JavaScript (내 응용 프로그램 내에서 Rails 내에서)로 문제를 해결했다고 생각합니다.

jQuery(document).ready(function($) {

$(".edit_textfield").each( function(i) {
  $(this).editable("update", {
         type      : 'textarea',
         rows      : 8,
         name : $(this).attr('name'),
         cancel    : 'Cancel',
         submit    : 'OK',
         indicator : "<img src='../images/spinner.gif' />",
         tooltip   : 'Double-click to edit...'
     })
 });
});

컨트롤러 URL이 편안한 경우 작동합니다.

다른 팁

다음은 편안한 레일 앱 (2.2.2)으로 Jeditable (1.6.2)을 연결하는 방법입니다.

인라인 형태 :

<div id="email_name"><%= h( @email.name ) %></div>

$('#email_name').editable( <%= email_path(@email).to_json %>, {
  name: 'email[name]',
  method: 'PUT',
  submitdata: {
    authenticity_token: <%= form_authenticity_token.to_json %>,
    wants: 'name'
  }
});

제어 장치:

def update
  @email = Email.find( params[:id] )
  @email.update_attributes!( params[:email )
  respond_to do |format|
    format.js
  end
end

update.js.erb

<%=
    case params[:wants]
    when 'name' then h( @email.name )
    # add other attributes if you have more inline forms for this model
    else ''
    end
%>

해당 스위치 명령문에서 약간 어리석은 일입니다. ajax 요청이 성공하고 아무것도 반환되지 않은 경우 Jeditable이 기본적으로 제출 된 값을 기본적으로 저장하면 좋을 것입니다.

html에 .js 파일을 포함하고 있다면 아니요. view 템플릿에 js 인라인이 있다면 그렇습니다.

JS보기 인 .erb.js 파일을 가질 수도 있습니다.

무엇이든 가능합니다 : d

"나는 당신이 가진 문제를 완전히 이해하는지 확실하지 않지만 JavaScript에 이와 같은 것을 넣을 수 있다고 생각합니다.

<%= url_for(@post) %>

JavaScript를 구조화하는 방법, 파일을 구성하는 방법 등에 따라 다릅니다.

당신이 컨트롤러가 편안한 것보다 조금 덜합니다. 특히 특정 필드를 업데이트하는 조치가 있다면이 경우에도 효과가 있습니다. 키는 인증 토큰을 통과하는 것입니다.

index.html.erb

<span id="my_edit"><%= foo.bar %></span>

<script type="text/javascript">
  $(document).ready(function() {
    $("#my_edit").editable('<%= url_for(:action => "update_bar", 
                  :id => foo) %>',
                    {
                       method: 'PUT',
                       cancel    : 'Cancel',
                       submit    : 'OK',
                       indicator : "<img src='../images/spinner.gif' />",
                       tooltip   : 'Double-click to edit...',
                       submitdata: {
                         authenticity_token: <%= form_authenticity_token.to_json %>,
                       }
                     }
    });
</script>

편안하지 않은 것을 정당화하지 않는 지나치게 단순화 된 컨트롤러 :

foo_controller.rb

def update_bar
    foo = Foo.find(params[:id])
    bar= params[:value]
            // insert justifiable code here
    foo.save
    render :text=>params[:value]
end

(Jrails는 jQuery 1.5에 포함을 제공하는 것 외에 다른 상호 작용을하지 않지만 Rails 2.2.2 및 2.3.2 w/ jeditable 1.7.0 및 Jrails 0.4와 함께 작동)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top