当我设置一些指向groups /:id(groups#show)的链接时,我遇到了麻烦。 我希望用户在我的系统上存在现有组时移动到groups /:id并编写下面的代码。
<% if @existing_groups_isbns.include? i.get('ItemAttributes/ISBN') %>
<%= link_to '既存グループへ', group_path(@existing_groups_ids.each{|id| id}) %>
首先,我创建了一个小组。那时,它工作。链接是“groups / 2”。 但是当我之后创建一个新组时,该链接变为旧组和新组的“组/ 2/3”,尽管我希望旧组的“组/ 2”和新组的“组/ 3”。我不知道为什么会这样。你能告诉我为什么以及如何解决这个问题吗?
☆index.html.erb
<h1>検索結果</h1>
<table class="table">
<tr>
<th>image</th>
<th>タイトル</th>
<th>著者</th>
<th>出版年</th>
<th>出版社</th>
<th>page</th>
<th>Link</th>
</tr>
<% if @items.present? %>
<% @items.each do |i| %>
<tr>
<td> <%= link_to image_tag(i.get('SmallImage/URL'), {:style => 'border: none;'}), i.get('DetailPageURL') %></td>
<td> <%= link_to i.get('ItemAttributes/Title'), i.get('DetailPageURL') %></td>
<td> <%= i.get('ItemAttributes/Author') %></td>
<td> <%= i.get('ItemAttributes/PublicationDate')%></td>
<td> <%= i.get('ItemAttributes/Publisher') %></td>
<td> <%= i.get('ItemAttributes/NumberOfPages')%></td>
<td>
<% if @existing_groups_isbns.include? i.get('ItemAttributes/ISBN') %>
<%= link_to '既存グループへ', group_path(@existing_groups_ids.each{|id| id}) %>
<% else %>
<%= link_to '新規作成', {:controller => 'groups', :action => 'new', :name => i.get('ItemAttributes/Title'),:author => i.get('ItemAttributes/Author'), :publish => i.get('ItemAttributes/Publisher'), :published => i.get('ItemAttributes/PublicationDate'), :isbn => i.get('ItemAttributes/ISBN'), :page => i.get('ItemAttributes/NumberOfPages'), :imageurl=>i.get('MediumImage/URL')} ,class: "btn btn-midium btn-primary"%>
<% end %> <!-- if @existing_groups_isbns-->
</td>
</tr>
<% end %><!-- each do-->
<% else %>
見つかりませんでした。
<% end %>
</table>
☆index_controller
class IndexController < ApplicationController
def index
@keyword = params[:keyword]
if @keyword.present?
Amazon::Ecs.debug = true
res = Amazon::Ecs.item_search(params[:keyword],
:search_index => 'All', :response_group => 'Medium')
@items = res.items
search_isbns = @items.map{ |isbns| isbns.get('ItemAttributes/ISBN')}
@existing_groups_isbns = Group.select(:isbn).where(:isbn => search_isbns).map(&:isbn)
@existing_groups_ids = Group.where(:isbn => search_isbns).map{|g| g.id}
end
end
答案 0 :(得分:0)
groups_controlller.rb
class GroupsController < ApplicationController
def add
@group = Groupe.find(params[:group])
@group.users.create(current_user)
end
end
的routes.rb
resources :groups do
get :add # or patch :add
end
view.haml
= link_to 'add to #{groupe.name}', add_group_path(@group) #, method: :patch