2012-02-12 16 views
7

Mesajlarım/dizin görünümünde link_to etiketi kullanıyorum ve gönderilerimi/show/id görünümüne bağlamak istiyorum yorum formu için aşağı kaydırır bir çapa ile. Bazı sebeplerden dolayı çapanın işe yaramasını sağlayamıyorum. 3000/mesajlar/id: sadece localhost'tur yüzden, mesajlar/indexRails 3.1.3 link_to etiketi ile bağlantı/etiket arasındaki bağlantı özelliğini kullanarak yayınları/dizini gönderiler/show/id çalışmıyor

<%= link_to 'Add a Comment', post, :anchor => 'comment_form' %> 

Bu bağlantının sonuna # işareti eklemek için başarısız olarak

: İşte benim kodudur. Ben de dahil olmak üzere, link_to için birçok varyasyonu denedim:

<%= link_to 'Add a Comment', post(:anchor => 'comment_form' %> 

ve

<%= link_to 'Add a Comment', :controller => 'posts', :action => 'show', :id => @post, :anchor => 'comment_form' %> 

ama hiç şans oldu. İşte

Yayınlarımdaki # gösterisi eylemdir:

def show 
    @post = Post.find(params[:id]) 

    respond_to do |format| 
     format.html # show.html.erb 
     format.json { render json: @post } 
    end 
    end 

ve burada ben çapa ilerleyin istediğiniz mesaj/gösteri görünümüdür: Dahası

<h2><a name="comment_form" id="comment_form">Add a comment:</a></h2> 

herhangi Eğer indeks sayfasındaki bir şeye bağlanıyorsam, yukarıdaki işten çıkarılan url'ye eklenmiştir. Bazı sebeplerden dolayı şov sayfasına bağlanmaya çalışırken işe yaramıyor. Bununla ilgili herhangi bir yardım var mı? url_for için olduğu gibi

link_to('Add a comment', post_path(post, :anchor => 'comment_form')) 

link_to ikinci bağımsız değişken, tipik olarak geçirilir ve bir sonuç olarak oluşturulan alır <a> elemanı için karma özellikleri gibi, üçüncü bağımsız değişken kullanılır:

cevap

14

Bu deneyin.

Yani, ilk örneğinizde, ikinci bağımsız değişken olarak bir Post nesnesini ve üçüncü bağımsız değişken olarak bir karma geçiriyorsunuz. Yalnızca Post, url_for'a aktarılacaktır. :anchor seçeneğini içeren hashı asla görmez, böylece oluşturulan URL'nin sonunda bağlantıyı görmezsiniz. (Ancak, oluşturulan <a> öğesinde bir anchor="comment_form" özniteliği göreceksiniz.)

İkinci örneğiniz sözdizimsel olarak yanlıştır. Bunun bir hatayla sonuçlandığını hayal ediyorum.

Üçüncü örneğiniz ... çalışmalıydı. Eminim neden olmasın :-)