Rails视图中的自定义按钮操作 - Ruby on Rails

时间:2013-11-17 20:56:05

标签: ruby-on-rails

Rails新手在这里。我有一系列包含Facebook好友的哈希,我希望可以选择转换为“联系人”。我有一个索引视图,列出了所有用户的“朋友”。我想要一个自定义按钮,使用户可以将每个朋友变成一个联系人。我如何在Rails中执行此操作?

索引视图 - 我目前正在列出每个用户的头像和版本。名称。我想在每个列表项中添加按钮。

注意:我没有Friend模型,因为我只是将这些数据作为哈希数组从Facebook Graph API中提取出来。

<% @friends.each do |friend|%>
<li> <%= image_tag(fb_avatar(friend["id"], "type=square"))%> <%=friend["name"]%> #put button here </li>
<% end %>

Application Helper中的自定义make_friend_contact方法(要在朋友上调用):

def make_friend_contact
  Contact.new(name: self["name"], uid: self["id"], avatar_url: fb_avatar(self["id"], "type=square"), user_id: params[:user])
end

非常感谢任何帮助。我做了很多阅读,我似乎无法解决这个问题。谢谢!

1 个答案:

答案 0 :(得分:0)

一种解决方案可能是使用button_to。您可以在Rails API中查看。以下是他们的一个例子:

<%= button_to [:make_happy, @user] do %>
  Make happy <strong><%= @user.name %></strong>
<% end %>

# => "<form method="post" action="/users/1/make_happy" class="button_to">
#      <div>
#        <button type="submit">
#          Make happy <strong><%= @user.name %></strong>
#        </button>
#      </div>
#    </form>"

按钮在@user上的Users控制器中调用make_happy操作。

您可以通过在Users控制器中使用friend参数创建新联系人来执行类似操作。

def make_friend_contact
  friend = params[:friend]
  Contact.new(name: friend["name"]...
end

然后你只需要发送带有按钮POST请求的friend参数。