Rails从另一个模型的视图调用控制器

时间:2011-10-16 05:39:39

标签: ruby-on-rails-3 helper link-to

我有post模型和upvote模型。

upvote.rb

class Upvote < ActiveRecord::Base
  has_one :user
  belongs_to :post
end
# == Schema Information
#
# Table name: upvotes
#
#  id         :integer         not null, primary key
#  user_id    :integer
#  post_id    :integer
#  comment    :text
#  created_at :datetime
#  updated_at :datetime
#

现在在posts/index内我想为当前用户和帖子添加一个upvote。

一些研究指出我要写一个帮手 posts_helper.rb

module PostsHelper
  def upvote_post(post)
    @upvote = Upvote.new
    @upvote.user_id = current_user.id
    @upvote.post_id = post.id
    if @upvote.save
     flash.now[:notice] = 'Upvote was successfully created.'
    end
  end
end

在我的视图中,我想仅在点击链接时调用帮助程序,但似乎无法使link_to正常工作。

<% @posts.each do |post| %>
  <tr>
    <td><%= link_to "upboats" upvote_post(post) %></td>
    <td><%= post.name %></td>
...

我收到错误syntax error, unexpected tIDENTIFIER, expecting ')',似乎找不到任何好的选择。

我在这里缺少什么?


已更新

这是一个逗号。 捂脸

还有很多其他问题,但这就是导致错误的原因。

<% @posts.each do |post| %>
  <tr>
    <td><%= link_to "upboats", upvote_post(post) %></td>
    <td><%= post.name %></td>
...

1 个答案:

答案 0 :(得分:1)

结束未解决的问题。

这是一个逗号。


已更新

这是一个逗号。捂脸

还有很多其他问题,但这就是导致错误的原因。

<% @posts.each do |post| %>
  <tr>
    <td><%= link_to "upboats", upvote_post(post) %></td>
    <td><%= post.name %></td>
...