【问题标题】:Custom Button Action in Rails View - Ruby on RailsRails 视图中的自定义按钮操作 - Ruby on Rails
【发布时间】:2013-11-18 13:04:03
【问题描述】:

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

非常感谢任何帮助。我已经读了很多书,但我似乎无法破解这个。谢谢!

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    一种解决方案可能是使用 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 上的用户控制器中调用make_happy 操作。

    您可以通过在用户控制器中使用朋友参数创建一个新联系人的操作来执行类似的操作。

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

    然后你只需要在按钮的 POST 请求中发送朋友参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多