繁体   English   中英

Rails 3:在“索引”上使用link_to:action无效

[英]Rails 3: Using a link_to :action on an “index”, isn't working

编辑:错误是即使按下link_to后feed_preference始终为nil,因此(如果feed_preference == nil)始终为true。 我仍然不知道是什么原因造成的。

此link_to应该做什么:

当您按下链接时,它将以某种方式对帖子索引进行排序。 一个按钮按趋势值排序,另一个按钮按时间排序,依此类推。


由于某种原因,在函数“ make_feed_preference”中,即使我将其硬编码为@ user.feed_preference =“ foobar”,@ user.feed_preference也不会更改。

但看起来redirect_to'posts'工作正常。


    <%= link_to displayIcon(1), {:action => :make_feed_preference, :id => current_user.id,
   :preference => "trending value",  :controller => "users"}, :method=>:post %>

在用户控制器中:

  def make_feed_preference
   @user = User.find(params[:id])
  @user.feed_preference = params[:preference]

  @user.save

  redirect_to '/posts'
 end

在帖子索引视图中:

def index
 @user = current_user

if @user.feed_preference == nil
  @user.feed_preference = "trending value"
end

@posts = Post

unless @user.tag_list == []
  @posts = Post.tagged_with(@user.tag_list, :match_all => :true)
end

if @user.feed_preference == "trending value"
@posts = @posts.order('trending_value DESC').page(params[:page]).per(5)

elsif @user.feed_preference == "time" 
@posts = @posts.order('created_at DESC').page(params[:page]).per(5)

respond_to do |format|
  format.html # index.html.erb
  format.xml  { render :xml => @posts }
end
end

Routes.rb

resources :users do
    resources :comments
    resources :posts
member do 
  get :following, :followers
end 

collection do
  post "tag_with"
  post "clear_tag_list_and_preferences"
  post "make_feed_preference"    
end

end

每当我检查这些值时,就好像单击link_to不会执行任何操作。

你说什么都不做? 该表格甚至不发布?

如果根本没有发布...您是否以表格的形式有link_to? 如果您使用post方法,则必须以某种形式使用它,除非您使用ujs jQuery库之类的东西,这些库使用jQuery / Javascript来帮助您进行“ post”操作。

使用gem:gem'jquery-rails'https: //github.com/indirect/jquery-rails

我也想看看你的“耙路”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM