在我的应用程序中,我有一个用户配置文件页面,其中有三个选项卡,下面有一个空白div.有一个默认选项卡是白色,另外两个选项卡更暗,"未选中".
我想这样做,以便下面div中的内容根据选择的选项卡呈现部分内容.
我已经让它工作到jQuery允许我点击不同的选项卡,它更改选项卡的颜色而不刷新页面.
但是,我坚持如何让部分正确渲染.有什么想法吗?我坚持如何根据jQuery中选择的选项卡动态调用部分,实际上我不确定是否需要另一个文件与此交互以使其工作.我对rails应用程序中的jQuery相对较新,所以我不确定我是否已经完成了我需要做的一切.
用户个人资料页面:app> views> show.html.erb
<ul class="profile-tabs">
<%= link_to "<li class=\"tab selected\">Tab 1</li>".html_safe, userprofile_users_path, remote: true %>
<%= link_to "<li class=\"tab\">Tab 2</li>".html_safe, userprofile_users_path, remote: true %>
<%= link_to "<li class=\"tab\">Tab 3</li>".html_safe, userprofile_users_path, remote: true %>
</ul>
<div id="profile-content">
<!--content goes here -->
</div>
Run Code Online (Sandbox Code Playgroud)
jQuery:app> assets> javascripts> userprofile.js
$(function() {
$("li.tab").click(function(e) {
e.preventDefault();
$("li.tab").removeClass("selected");
$(this).addClass("selected");
$("#profile-content").html("<%= escape_javascript(render partial:
"How can I make this partial name be generated based on the value of the selected li?")%>");
});
});
Run Code Online (Sandbox Code Playgroud)
用户控制器:app> controllers> …
我是初学者,所以请原谅我提出这个相当简单的问题:
当我尝试运行以下代码时:
c = "hey there you you"
newarray = c.grep("you")
puts newarray
Run Code Online (Sandbox Code Playgroud)
我在 ST2 中收到错误:<main>': undefined methodgrep' for "hey there you you":String (NoMethodError)
但是,当我使用数组运行此代码时,它会起作用:
c = ["hey", "there", "you"]
newarray = c.grep("you")
puts newarray
Run Code Online (Sandbox Code Playgroud)
我正在学习的书中的示例显示了 grep 直接应用于字符串的示例,所以我不确定为什么会发生这种情况。谁能启发我吗?
我试图通过他们的ID对所有城市(仅选择他们的名称属性)进行查询,并且我希望能够指定要选择的ID范围.我的代码如下:
def list_cities(start, stop)
cities = City.all(order: 'name ASC', id: start..stop, select: 'name')
cities.map { |city| "<li> #{city.name} </li>" }.join.html_safe
end
Run Code Online (Sandbox Code Playgroud)
但是,我收到一个错误:
Unknown key: id
Run Code Online (Sandbox Code Playgroud)
我在我看来的实现是:
<%= list_cities(1,22) %>
Run Code Online (Sandbox Code Playgroud)
这是一个放在所有视图中的辅助方法,因此我没有将逻辑放在特定的控制器中.
我的这个模型的架构是:
create_table "cities", :force => true do |t|
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.string "neighborhoods"
t.string "name"
t.integer "neighborhood_id"
end
Run Code Online (Sandbox Code Playgroud)
当我在控制台中运行该方法时,我得到了:
City Load (0.9ms) SELECT name FROM "cities" WHERE ("cities"."id" BETWEEN 1 AND 3) ORDER BY name ASC
=> ""
Run Code Online (Sandbox Code Playgroud)
我知道这不是一个空数据库的问题,因为它使用了以下版本的方法:
def list_cities(start, stop)
cities …Run Code Online (Sandbox Code Playgroud) 我是rails的新手,但却找不到适合自己的东西.
在我的应用程序中,我有产品,评论和用户.
评论belongs_to用户和产品,同时用户和产品"has_many"评论.
但是,我想限制用户为每个产品输入多个评论(每个产品都是唯一的).因此,如果用户为产品创建评论并尝试为同一产品撰写另一篇评论,则会告诉他们不允许这样做,但可以编辑他们现有的评论.
我的问题是:我应该在控制器级别执行此操作,还是可以通过验证(这似乎是一个更简单的解决方案)来执行此操作?只是不知道如何处理它.
我正在一个网站上工作,我希望能够显示用户个人资料的默认图像,如果他们还没有上传自己的图像.
我可以将默认图像放在asset/images目录中,但我想知道如何使用image_tag使逻辑工作,以便能够在视图中显示用户的图像,如果他们上传了一个或显示默认的占位符图像用户尚未上传的视图.
我是rails的新手,但我猜我应该把逻辑放在我的用户模型中的某个地方并有条件地为用户设置图像属性?我也在使用Paperclip.
我有一个collection_select表单,其中包含以下代码:
<%= f.collection_select(:city_id, City.order('name ASC'), :id, :name, {:prompt => "Select a City"}, {:id => 'cities_select'}) %>
Run Code Online (Sandbox Code Playgroud)
现在它只是在我的数据库中按名称列出所有城市,但是有重复的城市名称.例如,有两个"皮奥里亚"城市.
因此,我想用逗号分别显示州属性:"Peoria,IL"以帮助区分城市.如何在表单代码中编写此代码?
我正在使用Linode和Ubuntu 10.04以及Capistrano,Unicorn和Nginx进行部署.
如何heroku run rake db:reset使用此设置完成相应的操作?是否像cap deploy:cold再次运行迁移一样简单?
我已经部署并希望删除所有数据库并重新运行所有迁移但不确定使用此设置运行哪些命令.